Android Запустите активность из службы, не запуская другие действия приложения

Я начинаю работу с Theme.Dialog на IncomingCall обнаружен; однако, когда я начинаю свою диалоговую деятельность, она скрывает экран входящих вызовов, а это не то поведение, которое мне нужно. Я хочу запустить это диалоговое действие в одиночку, чтобы оно отображалось в верхней части экрана входящего вызова, а НЕ ВСЕ приложение в верхней части экрана входящего вызова. Я использовал SingleTask в манифесте и флаге NEW_TASK и использовал все виды контекстов. в качестве подсказки, я хочу сделать что-то вроде Android-приложения TrueCaller.

2 ответа

Решение

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

Для этого конкретного действия необходимо добавить следующее в манифест:

android:taskAffinity=""
android:noHistory="true"
android:excludeFromRecents="true"

ПРИМЕЧАНИЕ. Настройка noHistory а также excludeFromRecentsгарантирует, что эта задача не отображается в "списке последних задач".

Использование android:launchMode="singleInstance"

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