Как использовать onSaveInstanceState с большим количеством данных и объектов

1

Когда мое приложение стало сложным, и основная активность начала хранить в памяти много данных (загружаемых и проанализированных из файлов в ответ на действия пользователя), я (ошибочно) переключился с onSaveInstanceState на onRetainNonConfigurationInstance не заметив, что onRetainNonConfigurationInstance не вызывается, когда приложение убито до сохранить память устройства. Так как теперь я должен переключиться обратно на onSaveInstanceState я хочу, как правильно обрабатывать огромное количество данных, распределенных десятками объектов? Должен ли я реализовать сериализацию для всех этих объектов (Parcelable?) Или могут быть поставлены все данные в Service нити, надеясь, что не будет убит? Какова наилучшая практика?

Теги:

2 ответа

0
Лучший ответ

Я закончил с уродливым, но единственным приемлемым решением:

  1. Я переместил все данные в объект Application.
  2. Я создал Service переднего плана, чтобы объект приложения не был убит, даже если все действия были убиты.
1

onRetainNonConfigurationInstance устарела. Теперь лучше и проще использовать новый API-интерфейс Fragment. В основном вы расширяете класс Fragment, вызываете setRetainInstance(true) и помещаете все переменные, которые вы хотите сохранить здесь (ну, это немного сложнее, но документация очень понятна и содержит несколько образцов).

Он был введен в API 11, но доступен на старых платформах через пакет совместимости с Android.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню