1 сентября 2014 г.

Задачи и обратный стек (Tasks and back stack). Часть 15 (практика)

По ходу экспериментов всплыла еще одна особенность поведения Активностей при использовании флага запуска FLAG_ACTIVITY_NEW_TASK. И похоже это не последняя особенность!

И так запускаем приложение АР0004

T0001

и затем запускаем Активность В из приложения АР0003 и вводим любой текст

T0002

Замечает что Активность была запущена в новой задаче 35.

Теперь жмем кнопку HOME  и запускаем приложение АР0003

T0003

Видим что приложение было запущено не с Активности А, а с Активности В и видим что эта Активность уже была запущена. Что собственно правильно.

Теперь снова жмем кнопку HOME запускаем приложение АР0004

T0004

Видим что Активность нам сообщает что она уже была запущена. И запускаем снова Активность В из приложения АР0003

T0005

И …оооооопсссс… неожиданность! Как бы… был создан НОВЫЙ экземпляр Активности В в задаче 36. То есть сейчас стек задачи 36 содержит ДВЕ Активности В и имеет вид В-В. В чем можем убедиться нажав на кнопку Info

T0006

То есть если произошло переключение между приложениями, то будет создаваться опять таки новый экземпляр Активности В, а не будет происходить переключение на вершину стека задачи где уже Активность В существует.

Опять таки эксперименты полезная вещь Улыбка

Теперь жмем кнопку ОБРАТНО

T0007

И видим нашу первую Активность В, которую мы запускали в самом начале из приложения АР0004.

Жмем кнопку ОБРАТНО еще раз и попадаем в Активность А приложения АР0004

T0004

То есть мы переключились на стек задачи 36 и сейчас вернулись из него в нашу задачу 35.

С Андроидом не соскучишься Улыбка

Комментариев нет:

Отправить комментарий