Я программировал для Android в течение некоторого времени, и я все еще ищу решения для сохранения данных по изменениям конфигурации. Помимо сохранения Parcelable в Activity Bundle в onSaveInstanceState, документы предлагают использовать Fragment с флагом setRetainInstance, установленным в true.
Но я только что нашел код, который использует onRetainCustomNonConfigurationInstance для хранения произвольных объектов (по-фантастически, но по существу больших объектов без ссылок на Activity и т.д.). Я никогда не видел этот метод, поэтому у меня есть некоторые сомнения:
- Этот метод безопасен для вызова для хранения произвольных объектов (в смысле, что я могу быть уверен, что он будет вызван, и что он не будет устаревшим/удаленным в ближайшее время)?
- Как этот метод отличается от
onRetainNonConfigurationInstance(), который также должен возвращатьObject, и по существу должен работать аналогично? - По какой-то причине использование сохраненного фрагмента еще лучше?
В качестве бонуса я был бы признателен за любые другие советы или решения для сохранения состояния таких объектов, как AsyncTask, Observable, просмотр презентаторов и продолжение