Открытие нескольких задач Android с одной и той же корневой активностью

Я пытаюсь начать намерение с Main2Activity в новой (отдельной) задаче (т. Е. Отдельном заднем стеке и отдельном экземпляре на экране недавних сообщений). Я понял, что это нужно сделать, добавив Intent.FLAG_ACTIVITY_NEW_TASK а также Intent.FLAG_ACTIVITY_MULTIPLE_TASK флаги намерений:

Intent intent = new Intent(this, Main2Activity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
startActivity(intent);

Но это работает только если я установил (в манифесте) Main2Activity's android:taskAffinity к отличному от значения по умолчанию (т.е. отличному от соответствия заданию текущего действия).

Проблема в том, что я хочу иметь возможность создавать еще одну новую задачу с той же активностью более одного раза.

Пример:

В приложении Gmail для Android вы можете нажать кнопку "Создать" несколько раз, и каждый раз он создает "новый экземпляр" композитора. Я хотел бы добиться точно такого же поведения.

Любая подсказка?

Большое спасибо.

2 ответа

Итак, я думаю, что я только что понял это.

Заменил флаг Intent.FLAG_ACTIVITY_NEW_TASK с Intent.FLAG_ACTIVITY_NEW_DOCUMENT и, кажется, работает нормально.

примечание: этот флаг требует уровня API>= 21

Вместо использования

      Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK

Вы должны использовать только

      Intent.FLAG_ACTIVITY_MULTIPLE_TASK

потому что документы говорят, чтоFLAG_ACTIVITY_NEW_TASKвыводит старую задачу на передний план, если она уже запущена, и создает новую задачу, только если она не запущена.

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