Предположим, что у нас есть два вида деятельности.
A - основная деятельность, то есть «домашняя ракета-носитель включена» (фильтры правильного намерения и т. Д.)
B - активность задачи задачи с спецификацией singleTask (может быть только один экземпляр этого действия) и с пользовательской функцией taskAffinity (до дифференцировать, если из основного корня задачи).Как удалить активность singleTask с помощью taskAffinity из последних задач, когда это будет завершено?
Предположим, что B представляет собой задачу, которая действительна только тогда, когда она еще не закончена - возврат к ней или запуск ее из недавних задач после ее завершения не является вариантом.
В какой-то момент времени A начинает B, чтобы начать новую задачу. Цель состоит в том, чтобы удалить B из списка недавних задач, когда пользователь заканчивает B. Пользователь может перейти от B к другим задачам (используя домашнее долгое нажатие), а затем вернуться в B до тех пор, пока он еще не закончен. Запуск A из пусковой установки не приведет B на передний план, поскольку у них есть разные задачи.
Android распознает B как корень задачи, поэтому B отображается в последнем списке задач, даже если он завершен, и пользователь всегда может вернуться к нему. Это не решение переместить B в одну задачу с помощью A, потому что во время работы B пользователь должен иметь возможность переключаться между задачами A и B. Добавление excludeFromRecents к манифесту B полностью удаляет его из списка недавних задач, и это тоже плохое решение.
Как это достичь? (Извините за мой плохой английский)
Вызов завершения() в onResume() Когда задача завершена неправильно? – pawelzieba
Но он по-прежнему остается в списке недавних задач –
@MichaelP Вы хотите, чтобы он никогда не появлялся в последних задачах? Или просто исчезнуть, когда закончите? –