Рассмотрим еще один параметр excludeFromRecents, который будучи установленным в true исключает задачу, для которой эта Активность является корневой, из списка недавно открытых приложений.
Для этого была проведена очередная мутация приложений АР0003 и АР0004. В приложение АР0003 была добавлена Активность L с параметром excludeFromRecents="true". А в приложении АР0004 в Активности С была добавлена кнопка запуска Активности L с флагом FLAG_ACTIVITY_NEW_TASK, чтобы она запускалась в новой задаче и была для нее корневой.
Запускаем приложение АР0004 и сперва посмотрим как ведет себя Активность в новой задаче без рассматриваемого нами параметра
Запоминаем номер задачи 29 и жмем Start B AP0003 NEW TASK flag
Активность В была запущена уже в задаче 30, как и должно было быть
Теперь нажмем кнопку ДОМОЙ чтобы увидеть рабочий стол и затем опять будем удерживать кнопку ДОМОЙ несколько секунд чтобы увидеть список недавно открытых приложений
И так мы видим в этом списке оба приложения АР0003 и АР0004
Переключимся в АР0003 и выйдем из него нажав кнопку ОБРАТНО, а затем переключимся в приложение АР0004
Далее запустим последовательно Активности В и С.
И нажмем Start L AP0003 NewTask
Активность L была запущена в новой задаче 31 и она является для нее корневой сейчас. Теперь нажмем кнопку ДОМОЙ чтобы увидеть рабочий стол и затем удержав снова кнопку домой пару секунд выведем список недавно открытых задач.
Как видим Активности L приложения АР0003 нет в списке недавно запущенных задач.
Но это не значит что этой задачи не существует, если мы выйдем из этого списка и запустим приложение АР0003 с рабочего стола, то увидим наше приложение
Которое нам сообщит что оно уже было запущено. Теперь нажмем Start Activity A
И снова кнопку ДОМОЙ и выведем список недавно открытых задач
И ооооопс мы снова увидели приложение АР0003 в списке недавних задач. И опять поведение не такое как было описано в альма-матер. То есть в списке недавних задач не было видно только той Активности для которой был установлен параметр excludeFromRecents="true". То есть Активности L. Хотя ожидалось, как о том говориться в описании что не будет видна вся задача для которой эта Активность является корневой.
Переключимся в приложение АР0003 и нажмем кнопку ОБРАТНО
Опять увидим нашу Активность L
Жмем ДОМОЙ и выводим список задач
И оооопс опять увидели приложение АР0003 и его Активность L в списке недавних задач.
Еще один сюрприз от Андроид
Возможно, чтобы все работало как было описано в альма-матер, Активность с этим параметром должна быть главной Активностью приложения. Но экспериментировать с этим просто лень.
Комментариев нет:
Отправить комментарий