TreeMap не сортирует элементы на некоторых устройствах - PullRequest
0 голосов
/ 22 сентября 2019

Мой объект:

public class School{
TreeMap<String, int> classes = new TreeMap<>();
}

Вот как я сохраняю объекты в базе данных Firebase Realtime:

 mDatabase.child("School").setValue(school);

Вот как я получаю объекты из базы данных Firebase Realtime:

ValueEventListener listener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        SChool s = dataSnapshot.getValue(School.class);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
    }
};

Проблема: Использование TreeMap должно обеспечить порядок ключей, которые всегда правильно записываются в БДкак показано ниже:

enter image description here

Тестирование приложения на различных эмуляторах и физических устройствах показывает ожидаемое нормальное поведение, то есть просмотр классов в порядке возрастания сортировкитак же, как и в БД выше.

Тем не менее, я получаю жалобы от пользователей приложений, что список не имеет порядка сортировки на их устройствах.Эти устройства включают в себя: Huawei Mate 8, Oppo F9.

Я схожу с ума, я что-то здесь упускаю?

1 Ответ

0 голосов
/ 22 сентября 2019

Я попытался загрузить приложение еще раз, но на этот раз, используя «генерировать подписанный APK», и сейчас он отлично работает на всех устройствах.Даже устройства, с которыми у пользователей были проблемы с моим приложением.

Похоже, что при публикации приложения в Google Play с использованием "Создать подписанный пакет" возникают различные проблемы, включая описанную выше.Это приводит к путанице, так как многие устройства не имеют проблем с корректной работой приложения при нормальном ожидаемом поведении TreeMap.Однако на других устройствах TreeMap вообще не сортирует ключи.

Также отметьте this , это также связано с загрузкой в ​​Google Play с помощью «Создать подписанный комплект».

...