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