Как удалить однозадачную активность с TaskAffinity из недавних задач после ее завершения?

Предположим, что у нас есть две активности.

A - основная активность, то есть "домашняя пусковая установка включена" (правильные фильтры намерений и т. д.)

B — корневое действие задачи с указанием singleTask (может быть только один экземпляр этого действия) и с пользовательским признаком taskAffinity (чтобы отличить его от основного корня задачи).

Предположим, что B представляет задачу, т. е. действует только тогда, когда оно не завершено — вернуться к нему или запустить его снова из последних задач после завершения — не вариант.

В какой-то момент времени — A запускает B, чтобы начать новую задачу. Цель — удалить B из списка недавних задач, когда пользователь закончит B. Пользователь может перейти от B к другим задачам (используя долгое нажатие на дом), а затем вернуться к B, пока она не завершена. Запуск A из панели запуска не выводит B на передний план поскольку они имеют разное сходство задач.

Android распознает B как корень задачи, поэтому B виден e в списке недавних задач, даже если она завершена, и пользователь всегда может вернуться к ней. Это не решение - переместить B в одну задачу с A, потому что во время работы B пользователь должен иметь возможность переключаться между задачами A и B. Добавление excludeFromRecents в манифест B полностью удаляет его из списка последних задач, и это тоже плохое решение.

Как этого добиться? (извините за мой плохой английский)

9
задан Michael P 6 June 2012 в 19:31
поделиться