同时在应用程序外部进行多个对话活动

问题描述:

我从我的应用程序中的广播接收器开始一个新的对话活动。 我希望该对话活动能够独立于应用程序显示(即使应用程序已最小化),我的广播接收器也可以创建对话活动并将其显示在应用程序之外。 我可以通过在启动活动时设置Intent.FLAG_ACTIVITY_NEW_TASK并通过在清单文件中将对话活动指定为singleInstance来实现此目的。同时在应用程序外部进行多个对话活动

现在可能会出现广播接收器可能同时创建两个对话活动的情况。 我如何做到这一点?

注意:即使应用程序在后台运行,对话框活动也必须独立显示在应用程序外部。

使用android:launchMode="singleInstance"绝对是错误的方法。删除。

您需要做的是设置此Activity的任务关联性,以便它与应用程序紧密耦合。为此,请将

android:taskAffinity="" 

添加到清单中的<activity>标记。

+0

非常感谢。我能够通过在清单中添加taskAffinity并通过Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK。 – dnivra 2015-02-06 16:35:21

+0

你可能不需要'Intent.FLAG_ACTIVITY_MULTIPLE_TASK'。我认为这会让用户感到困惑。如果你有两个这样的对话框,每个对话框都在单独的任务中,你会在最近的任务列表中看到多个对话框,你将无法区分它们。在同一个任务中只有多个对话活动可能会更好,因此一旦用户放弃了其中一个对话活动,它下面的活动就会显示出来。只是我的建议。我尽量不要使用'Intent.FLAG_ACTIVITY_MULTIPLE_TASK',因为它会在以后造成很多混淆。 – 2015-02-06 16:48:44