Предположим, у приложения уже есть стек действий, а затем из контекста приложения запускается новое действие с FLAG_ACTIVITY_NEW_TASK. И это происходит в рамках одного процесса, то есть внутри приложения, например:
AppContext -> A(FLAG_ACTIVITY_NEW_TASK) -> B -> C; AppContext -> D(FLAG_ACTIVITY_NEW_TASK)
Согласно документации, сейчас у нас есть 2 задачи:
Task 1: A, B, C; Task 2: D
Из документа следует, что для пользователя теоретически возможно переключиться на действие C или деятельности D независимо, поскольку они относятся к разным задачам. Однако на практике я не Верно ли, что при запуске в одном процессе с FLAG_ACTIVITY_NEW_TASK задачи не являются независимыми, и пользователь может переключиться только на самое верхнее действие в самой верхней задаче?
Если ответ «нет» , то что способ для пользователя переключиться на задачу 1?
Ответ: Нет
Задачи независимы, и пользователь может переключаться между их действия независимо друг от друга, фактически имея два действия вашего приложения на вершине стека. Я только что нашел вариант использования через три года после того, как задал исходный вопрос.
Наше приложение регистрируется как обработчик схемы URL (например, market: //xxx.yyy/zzz
). Теперь представим, что пользователь запустил приложение с помощью средства запуска, попал в середину чего-то (действия A, B, C
), и остановился. Затем в браузере пользователь щелкает URL-адрес, чтобы запустить другое действие (действие D
). Это приводит к одновременному выполнению двух задач: действий A, B, C
(с C
вверху) и действия D
. Пользователь может переключаться между этими двумя действиями через историю задач.
Забавно, что действие C отображается в истории задач с собственным значком приложения, но действие D отображается со значком браузера. В любом случае, оба могут быть переключены на.
Кроме того, обе задачи ABC
и D
выполняются в одном процессе. Это означает, что все однотонные объекты и статические данные совместно используются ими. В результате они могут испортить состояние друг друга, если не будут приняты меры предосторожности.