Несколько действий с одной задачей

Я очень запутался в режимах запуска активности. Вот сценарий.

Задание A - основное, средство запуска с режимом запуска SingleTask. Задание B - Режим запуска SingleTask. Задание C - Стандартный режим запуска.

Теперь вот что я делаю

Деятельность A > Деятельность B > Деятельность C

И я нажимаю кнопку домой. И я возобновляю приложение из последних приложений. На самом деле происходит то, что

Деятельность А

Но я прочитал документацию, и это должно быть так после резюме

Деятельность A > Деятельность B

Или я что-то упустил?

1 ответ

Ну, многое зависит от того, как вы установили taskAffinity для различных действий в манифесте.

Давайте предположим, что вы настроили его так, чтобы активность A и деятельность B есть разные taskAffinity (именно так вы ДОЛЖНЫ его настроить). При запуске приложения Android создает новую задачу, содержащую A, Когда вы запускаете B от AAndroid должен создать еще одно новое задание, содержащее только B, Задача, содержащая A отправляется на задний план. Теперь у вас должно быть 2 задания, одно из которых содержит только A и один содержит только B, Когда вы запускаете C от Bвторая задача теперь должна содержать B->C, Когда вы нажимаете кнопку HOME, вторая задача отправляется в фоновом режиме.

Теперь, когда вы смотрите в списке недавних задач, вы должны увидеть две задачи для вашего приложения. В зависимости от того, что вы выберете, вы получите либо задачу, содержащую только Aили задача, содержащая B->C,

Вот почему вы не должны использовать специальные режимы запуска singleTask или же singleInstanceпотому что они делают много вещей, которые вы не ожидаете. Если вы игнорируете этот совет и в любом случае используете эти режимы запуска, вы должны знать, как taskAffinity влияет на то, как действия запускаются в различные задачи, и вам также нужно знать, что у вас может возникнуть несколько задач, и в этом случае вам нужно предоставить пользователю возможность вернуться к правильной задаче из списка последних задачи. Это также означает, что вам может потребоваться предоставить разные метки для задач и / или разные значки для задач, чтобы помочь пользователю найти правильную задачу для возобновления.

Другие вопросы по тегам