Попытка решить (для моего приложения), что сохранить в onPause() и что сохранить в onSaveInstanceState(), я прочел все SO для подсказок и четких рекомендаций.
Если я правильно понимаю, onSaveInstanceState() лучше всего подходит для сохранения "изменений времени выполнения" или "текущего состояния" (что бы это ни значило), а onPause() лучше всего подходит для сохранения "постоянного состояния" (что бы это ни значило).
Мне все еще трудно решить, что в моем приложении представляет собой "постоянное состояние" и "текущее состояние". Например, в то время как пользовательские предпочтения явно настойчивы, мне нужно сохранить их в onPause()
, когда они всегда сохраняются автоматически с помощью интерфейса Android UI, когда пользователь меняет их?
Нужно ли сохранять элементы данных класса в onSaveInstanceState()? Нужно ли мне делать это для каждого класса в моем приложении?
Я смущен.
Можете ли вы принести реальные примеры того, что должно быть сохранено в onPause()
и что нужно сохранить в onSaveInstanceState()
? За исключением для изменений конфигурации устройства, то есть.
-
Некоторые новые идеи после ответа на вопрос:
- onSaveInstanceState
Bundle
не написан ни к чему, и он не является стойким каким-либо образом. - onSaveInstanceState
Bundle
данные будут сохранены в памяти до закрытия приложения.