Android: действует ли FLAG_ACTIVITY_NEW_TASK в рамках одного и того же процесса?

Предположим, у приложения уже есть стек действий, а затем из контекста приложения запускается новое действие с 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 выполняются в одном процессе. Это означает, что все однотонные объекты и статические данные совместно используются ими. В результате они могут испортить состояние друг друга, если не будут приняты меры предосторожности.

8
задан JBM 14 April 2014 в 08:31
поделиться