A. Какой изящный способ иметь уведомление android M принести существующую целевую активность из заднего стека вверх (т. Е. Не создать новый экземпляр целевой активности на вершине), при сохранении оставшейся обратно стек нетронутыми, при следующих двух сценариев:Уведомление Android -> предотвратить новую активность, Android M (2017)
- Task с целевой активностью находится на переднем плане
- Задача с целевой активностью в фоновом режиме
в Если А невозможно, то что s самый изящный способ получить уведомление
- Просто продолжайте показывать задачу с ее стеком, если его уже на переднем плане (т. не создавать новую целевую активность сверху)
- Приведите фоновое задание на передний план без изменений, не создавая новый экземпляр целевой активности сверху.
Это как (за) запуск приложения из его значка на главном экране или в приложении.
C. Если B также невозможно, то какой изящный способ сделать уведомление выполненным B, а затем создать новый экземпляр целевой активности сверху EXCEPT, когда целевая активность уже включена.
Я не думаю, что это уместно, но уведомление задается с переднего плана.
Этот вопрос задан в различных формах раньше и получил много ответов. Однако API-интерфейсы изменились, что больше не срабатывало раньше, большинству ответов много лет, ответы цитируются из документов, которые иногда не следуют практике, терминология, используемая в этих QnA, неправильна и добавляет к общей путанице, и, кроме того, некоторые принятые ответы просто неверны (например, this thread). Кроме того, поведение довольно сложно, учитывая множество различных сценариев, которые могут произойти, и, прочитав почти все QnA по этой теме, я не нашел достаточной технической точности в этих вопросах.
Также It's OK to Ask and Answer Your Own Questions обнадеживает!
Я собираюсь начать документировать свои выводы в качестве ответов на этот вопрос.
Ответы, комментарии, исправления наиболее приветствуются, только если это проверенный механизм для Android M, API 23. Пожалуйста, укажите его для A, B или C. не хотите ли сходить на какие-либо более дикий гусь погонь ;-)