android - TreeMap 未在某些设备上对元素进行排序
问题描述
我的对象:
public class School{
TreeMap<String, int> classes = new TreeMap<>();
}
这就是我将对象保存到 Firebase Realtime DB 的方式:
mDatabase.child("School").setValue(school);
这就是我从 Firebase Realtime DB 检索对象的方式:
ValueEventListener listener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
SChool s = dataSnapshot.getValue(School.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
问题: 使用 TreeMap 应确保键的顺序,这些键始终正确写入数据库,如下所示:
在各种模拟器和物理设备上测试应用程序显示了预期的正常行为,即以与上面 DB 上可见的相同的升序方式查看类。
但是,我收到来自应用程序用户的抱怨,称该列表在他们的设备上根本没有排序顺序。这些设备包括:华为 Mate 8、Oppo F9。
我失去了理智,我在这里错过了什么吗?
解决方案
我尝试再次上传应用程序,但这次使用“生成签名的 APK”,它现在在所有设备上都可以正常工作。甚至是用户对我的应用程序有问题的设备。
似乎在使用“生成签名包”在 google play 上发布应用程序时会导致各种问题,包括上述问题。它会引起混乱,因为许多设备在使应用程序正常工作并与 TreeMap 的正常预期行为时没有问题。但是,在其他设备上,TreeMap 根本不对键进行排序。
还要检查一下,这也是因为使用“生成签名包”上传到谷歌播放。
推荐阅读
- three.js - Three.js Cubemap reflection shader rotation
- c++ - esp8266 通过 MQTT 发送大型 JSON 文档的问题
- python - loop to pass bulk values into python api request
- css - How to return a value with SASS depending on media query?
- javascript - 无法将对象保存在其键处于反应状态的状态
- assembly - BIOS Interrupt 0x10 Does Not Print/Display Anything
- reactjs - React - Manage Bootstrap Modals in components
- image - HOW TO STORE AN IMAGE UPLOADED BY THE USER FOR THE NEXT RUNTIME :android studio
- pandas - How to calculate Growth rate of a time series variable in python pandas
- c# - 如何将 int 2d 数组`int[,]` 转换为枚举 2d 数组`enum[,]`?