Несколько действий с одной задачей
Я очень запутался в режимах запуска активности. Вот сценарий.
Задание A - основное, средство запуска с режимом запуска SingleTask. Задание B - Режим запуска SingleTask. Задание C - Стандартный режим запуска.
Теперь вот что я делаю
Деятельность A > Деятельность B > Деятельность C
И я нажимаю кнопку домой. И я возобновляю приложение из последних приложений. На самом деле происходит то, что
Деятельность А
Но я прочитал документацию, и это должно быть так после резюме
Деятельность A > Деятельность B
Или я что-то упустил?
1 ответ
Ну, многое зависит от того, как вы установили taskAffinity
для различных действий в манифесте.
Давайте предположим, что вы настроили его так, чтобы активность A
и деятельность B
есть разные taskAffinity
(именно так вы ДОЛЖНЫ его настроить). При запуске приложения Android создает новую задачу, содержащую A
, Когда вы запускаете B
от A
Android должен создать еще одно новое задание, содержащее только B
, Задача, содержащая A
отправляется на задний план. Теперь у вас должно быть 2 задания, одно из которых содержит только A
и один содержит только B
, Когда вы запускаете C
от B
вторая задача теперь должна содержать B->C
, Когда вы нажимаете кнопку HOME, вторая задача отправляется в фоновом режиме.
Теперь, когда вы смотрите в списке недавних задач, вы должны увидеть две задачи для вашего приложения. В зависимости от того, что вы выберете, вы получите либо задачу, содержащую только A
или задача, содержащая B->C
,
Вот почему вы не должны использовать специальные режимы запуска singleTask
или же singleInstance
потому что они делают много вещей, которые вы не ожидаете. Если вы игнорируете этот совет и в любом случае используете эти режимы запуска, вы должны знать, как taskAffinity
влияет на то, как действия запускаются в различные задачи, и вам также нужно знать, что у вас может возникнуть несколько задач, и в этом случае вам нужно предоставить пользователю возможность вернуться к правильной задаче из списка последних задачи. Это также означает, что вам может потребоваться предоставить разные метки для задач и / или разные значки для задач, чтобы помочь пользователю найти правильную задачу для возобновления.