Нужно ли также сохранять предыдущее состояние активности при очистке ресурса в фоновом режиме при использовании startActivityForResult ()? - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть основное занятие, которое переводит меня в другое занятие с использованием startActivityForResult(). Результирующее действие выполняет процесс и в конечном итоге возвращает объект обратно в основное действие. Мой вопрос:

  1. Если пользователь нажимает кнопку «Домой» на своем экране android, когда он был в результате действия, и android очищает ресурсы моего приложения, я должен только сохранить состояние моей результирующей активности или мне также нужно сохранить состояния как основной, так и результирующей активности, чтобы восстановить текущее состояние моего приложения.

  2. Если мне нужно сохранить состояния обеих операций, как мне это сделать?

Ps: у меня есть некоторые данные, добавленные к моей основной деятельности. Я хотел бы восстановить свое состояние как для результата, так и для основной деятельности.

1 Ответ

1 голос
/ 25 февраля 2020

Если пользователь нажимает кнопку «Домой» на своем экране android, когда он был в результате действия, и android очищает ресурсы моего приложения, нужно ли мне сохранять только состояние моей конечной активности или я Также необходимо сохранить состояния как основного, так и конечного действия, чтобы восстановить текущее состояние моего приложения

. Вам не нужно запускать onSaveInstanceState() вручную. Таким образом, все с состоянием, которое сохраняется с помощью этого метода, будет сохранено автоматически.

НО

  • , даже состояние всех View s не будет сохранено дефолт. Например, TextView, текст которого вы изменили, вернется к тексту в файле макета, если вы не установите атрибут android:freezesText="true"

  • , если у вас есть данные, хранящиеся в поле (свойство) вашего Activity, оно будет потеряно, если вы не предпримете шаги для его сохранения (обратите внимание, что это также верно для ViewModel s - они переживают изменение конфигурации, но не являются бессмертными).

Параметры для постоянных данных: если они связаны со слоем View, например, например, с выбранным элементом в RecyclerView, можно переопределить onSaveInstanceState() и сохранить идентификатор элемента в saveInstanceState Bundle. Другие возможности включают запись в SharedPreferences и наличие базы данных SQLite. См. Также Параметры для сохранения состояния пользовательского интерфейса и Обзор хранилища данных и файлов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...