Диалог оповещений вне приложения (не в разделе «Действия»)

1

Есть ли способ создать какое-то всплывающее окно, такое как диалоговое окно Alert, вне приложения? Контекст этого вопроса заключается в том, что мне нужно отображать что-то пользователю в случае Push Notification. В принципе, пользователь получает сообщение, приложение получает его, даже если оно в настоящее время не открыто, и уведомление появляется на панели задач пользователя. Если пользователь открывает уведомление в своей панели задач, я хочу, чтобы всплывающее окно выглядело полностью независимым от приложения.

Единственное решение, которое я нашел до сих пор, - это вызов Activity с параметром Theme.Dialog, создающим диалоговое окно Alert. Проблема с этим решением заключается в том, что активность будет добавлена ​​в стек активности, если приложение уже открыто. Поэтому я получаю противоречивое поведение, потому что если приложение закрыто, то всплывающее окно будет работать так, как я хочу, и будет отображаться в любом приложении, в котором находится пользователь. Однако, если приложение уже открыто, но не в настоящее время в фокусе, то фокус переключится на мое приложение, а затем отобразит диалог.

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

У кого-нибудь есть идеи?

Теги:

1 ответ

5
Лучший ответ

Нет, вы не можете. Но вы можете играть с launchMode, чтобы сделать его единственным действием в задаче:

http://developer.android.com/guide/practices/ui_guidelines/activity_task_design.html

Режимы "singleTask" и "singleInstance" также отличаются друг от друга только в одном отношении: активность "singleTask" позволяет другим действиям быть частью своей задачи. Он всегда лежит в основе его задачи, но в эту задачу могут быть включены другие действия (обязательно "стандартные" и "одиночные" ). С другой стороны, деятельность "singleInstance" не позволяет другим действиям не участвовать в ее задаче. Это единственное занятие в задаче. Если он запускает другое действие, эта деятельность назначается другой задаче - как если бы FLAG_ACTIVITY_NEW_TASK был в намерении.

  • 1
    Спасибо, наконец-то все заработало. Моя активность оповещения настроена для использования в качестве темы. Я использую launchMode = "singleInstance". Я не уверен, почему другие launchModes не работают, так как кажется, что пока я установил FLAG_ACTIVITY_NEW_TASK для намерения, он должен работать в любом режиме, но это не так.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню