应用程序外部的警报对话框不在活动中

问题描述

| 有没有一种方法可以在应用程序外部创建某种弹出窗口(如“警报对话框”)?这个问题的内容是,如果有“推送通知”,我需要向用户显示一些内容。基本上,用户会收到一些消息,即使当前未打开,应用也会收到消息,并且通知显示用户的任务栏中。如果用户在其任务栏中打开通知,则我希望弹出窗口显示为完全独立于应用程序。 到目前为止,我找到的唯一解决方案是使用Theme.Dialog设置调用Activity来创建Alert对话框。该解决方案的问题在于,如果该应用程序已经打开,则该活动将被添加到活动堆栈中。因此我会有不一致的行为,因为如果关闭了该应用程序,则弹出窗口将按我希望的方式工作,并且将显示用户当前所在的任何应用程序中。但是,如果该应用程序已经打开但当前未处于焦点状态,然后焦点将切换到我的App,然后显示对话框。 理想情况下,我希望弹出窗口独立于应用程序显示,并带有一个按钮,用于将用户重定向到应用程序(如果他们选择的话),或者只是关闭通知并继续他们所做的一切。 有人有想法么?     

解决方法

不,你不能。但是您可以使用launchMode使其成为任务中的唯一活动: http://developer.android.com/guide/practices/ui_guidelines/activity_task_design.html   \“ singleTask \”和\“ singleInstance \”模式在一个方面也彼此不同:\“ singleTask \”活动允许其他活动成为其任务的一部分。它始终是其任务的根本,但是其他活动(必要时为“标准”和“ singleTop”活动)也可以启动到该任务中。另一方面,“ singleInstance”活动不允许其他活动成为其任务的一部分。这是任务中唯一的活动。如果启动另一个活动,则该活动将分配给其他任务-就像意图中的FLAG_ACTIVITY_NEW_TASK一样。