Я предполагаю, что это проблема с кешем данных.
Хранение данных в статическом классе не гарантируется, когда пользователи часто меняют приложения.Система Android будет восстанавливать любую фоновую активность, когда памяти мало.Статический класс определенно относится к этой категории.
Правильный способ сделать это - использовать sharedPreference для сохранения данных кэша.
Вы можете создать свой собственный метод получения и установкиданные, которые вы хотите, и оберните их вокруг объекта sharedPreference.Когда вы получаете доступ с помощью getter, вы всегда должны проверять, является ли значение пустым или срок его действия истек.Вы можете сохранить update_time
при использовании setter.
Для данных, относящихся к конкретной деятельности, вы можете просто использовать getPreference(permission)
, если вы хотите обмениваться данными между действиями и другими компонентами приложений, вы можете использовать getSharedPreference(name, permission)
.
Обычно разрешение будет MODE_PRIVATE, так что доступ к данным возможен только в вашем приложении.
Вы должны сгруппировать данные и сохранить в разнице объект sharedPreference.Это хорошая практика, потому что, когда вы хотите аннулировать эту группу данных, это просто вопрос одной строки.
editor.clear(); editor.commit()
Если вы хотите кэшировать сложный объект, вы должны сериализоватьЭто.Я предпочитаю формат JSON.Так что вам нужен какой-то механизм преобразования на месте.Для этого я создам свой класс объектов данных, расширяющий класс JSONable.Класс JSONable будет иметь метод toJSON()
и readFromJSON()
.Это удобно при восстановлении и сериализации данных.