Задача, кнопка «Назад» и метод onSaveInstanceSate

1

Привет, я немного немного смущен после прочтения этих материалов о задачах и Back Stack, Руководство для разработчиков Android:

В нем говорится:

Когда активность А начинает активность В, активность А прекращается, но система сохраняет свое состояние (например, положение прокрутки и текст, введенный в формы). Если пользователь нажимает кнопку "Назад" во время действия "В", операция "А" возобновляется с восстановленным состоянием.

Хотя в справочнике API для метода onSaveInstanceState() он говорит:

Один пример того, когда вызывается onPause() и onStop(), а не этот метод, когда пользователь переходит от операции B к активности A: нет необходимости вызывать onSaveInstanceState (Bundle) на B, потому что этот конкретный экземпляр никогда не будет восстановлен, поэтому система избегает его вызова.

Вышеупомянутые две ситуации кажутся мне идентичными ("нажмите кнопку" Back на" Активность А "и" перейдите от Activity B к Activity A "). Но я не понимаю, почему, в то время как первый говорит, что активность A возобновляется с восстановленным предыдущим состоянием, а последний говорит, что конкретный экземпляр Activity B никогда не будет восстановлен. Любые объяснения?

Заранее спасибо!

Теги:
android-activity
task

1 ответ

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

Я думаю, что первый говорит, что A будет сохранен, чтобы он мог быть восстановлен, а второй говорит, что B не будет сохранен, потому что он не может быть восстановлен.

  • 0
    Вы правы, второй говорит, что B (не A) не будет восстановлен (я пропустил чтение)! При нажатии кнопки «Назад» от B к A, B уничтожается, а A восстанавливается, поэтому нет необходимости вызывать onSaveInstanceState () для B. Я прав?
  • 1
    правильно, но с практической точки зрения, всегда полезно быть готовым к вызову onSaveInstanceState в своей деятельности, потому что вы никогда не знаете, что произойдет - уведомление может привлечь внимание пользователя, и он что-то сделает, а затем вернуться к B из эта другая деятельность, а затем B необходимо будет восстановить.
Показать ещё 4 комментария

Ещё вопросы

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