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

Android 应用程序外部的警报对话框(不在活动中),android,Android,有没有办法在应用程序之外创建某种弹出窗口,如警报对话框?这个问题的背景是我需要在推送通知事件中向用户显示一些内容。基本上,用户会收到一些消息,即使当前未打开,应用程序也会收到消息,并在用户的任务栏中显示通知。如果用户在任务栏中打开通知,我希望弹出窗口完全独立于应用程序 到目前为止,我找到的唯一解决方案是调用主题为.Dialog设置的活动创建警报对话框。此解决方案的问题是,如果应用程序已打开,则活动将添加到活动堆栈中。因此,我得到了不一致的行为,因为如果应用程序关闭,那么弹出窗口将按照我的要求工作

有没有办法在应用程序之外创建某种弹出窗口,如警报对话框?这个问题的背景是我需要在推送通知事件中向用户显示一些内容。基本上,用户会收到一些消息,即使当前未打开,应用程序也会收到消息,并在用户的任务栏中显示通知。如果用户在任务栏中打开通知,我希望弹出窗口完全独立于应用程序

到目前为止,我找到的唯一解决方案是调用主题为.Dialog设置的活动创建警报对话框。此解决方案的问题是,如果应用程序已打开,则活动将添加到活动堆栈中。因此,我得到了不一致的行为,因为如果应用程序关闭,那么弹出窗口将按照我的要求工作,并将显示在用户当前所在的任何应用程序中。但是,如果应用程序已打开,但当前未处于焦点,则焦点将切换到我的应用程序,然后显示对话框

理想情况下,我希望弹出窗口独立于应用程序显示,如果用户选择,可以用一个按钮将用户重定向到应用程序,或者简单地关闭通知并继续他们正在做的任何事情


有人有什么想法吗?

不,你不能。但您可以使用launchMode使其成为任务中的唯一活动:

“singleTask”和“singleInstance”模式也仅在一个方面不同:“singleTask”活动允许其他活动成为其任务的一部分。它始终是其任务的根源,但其他活动(必须是“标准”和“单端”活动)可以启动到该任务中。另一方面,“单实例”活动不允许其他活动成为其任务的一部分。这是任务中唯一的活动。如果它启动了另一个活动,则该活动将被分配给另一个任务-就好像FLAG_activity_NEW_task在意图中一样


不,你不能。但您可以使用launchMode使其成为任务中的唯一活动:

“singleTask”和“singleInstance”模式也仅在一个方面不同:“singleTask”活动允许其他活动成为其任务的一部分。它始终是其任务的根源,但其他活动(必须是“标准”和“单端”活动)可以启动到该任务中。另一方面,“单实例”活动不允许其他活动成为其任务的一部分。这是任务中唯一的活动。如果它启动了另一个活动,则该活动将被分配给另一个任务-就好像FLAG_activity_NEW_task在意图中一样


谢谢,终于成功了。我的警报活动被配置为主题对话框,并使用launchMode=“singleInstance”。我不确定为什么其他启动模式不起作用,因为似乎只要我在意图上设置FLAG_ACTIVITY_NEW_TASK,它就可以在任何模式下工作,但事实并非如此。谢谢,终于实现了。我的警报活动被配置为主题对话框,并使用launchMode=“singleInstance”。我不确定为什么其他启动模式不起作用,因为似乎只要我在intent上设置FLAG_ACTIVITY_NEW_TASK,它就可以在任何模式下工作,但事实并非如此。