Временно сохранить объект в Android можно несколькими способами, выбор зависит от его срока жизни и необходимости доступа после завершения компонента:
onSaveInstanceState() и onRestoreInstanceState().ViewModel: Лучший способ для сохранения данных, связанных с UI, которые должны пережить изменения конфигурации Activity/Fragment (например, повороты экрана). ViewModel существует до уничтожения ViewModelStoreOwner.
kotlin
onRetainCustomNonConfigurationInstance() (устаревший): Метод в Activity для сохранения произвольных объектов, которые переживут изменение конфигурации. getLastNonConfigurationInstance() используется для получения объекта. Устарел в пользу ViewModel.
kotlin
Application класс: Для объектов, которые должны жить на протяжении всего жизненного цикла приложения. Следует использовать осторожно, чтобы не хранить в нем слишком много данных.| Метод | Срок жизни | Использование |
|---|---|---|
| Состояние View | Жизнь View + перес. сост. | Мелкие данные, связанные с View |
| ViewModel | Жизнь Activity/Fragment | Данные UI, переживающие изменения конфигурации |
| onRetainCustomNonConfigurationInstance() | Жизнь Activity + перес. сост. | Произвольные объекты (устаревший) |
| Application класс | Жизнь приложения | Глобальные объекты |
| Временные файлы | Определяет разработчик | Крупные объекты, временное хранилище |