同时在应用程序外部进行多个对话活动
问题描述:
我从我的应用程序中的广播接收器开始一个新的对话活动。 我希望该对话活动能够独立于应用程序显示(即使应用程序已最小化),我的广播接收器也可以创建对话活动并将其显示在应用程序之外。 我可以通过在启动活动时设置Intent.FLAG_ACTIVITY_NEW_TASK并通过在清单文件中将对话活动指定为singleInstance来实现此目的。同时在应用程序外部进行多个对话活动
现在可能会出现广播接收器可能同时创建两个对话活动的情况。 我如何做到这一点?
注意:即使应用程序在后台运行,对话框活动也必须独立显示在应用程序外部。
答
使用android:launchMode="singleInstance"
绝对是错误的方法。删除。
您需要做的是设置此Activity
的任务关联性,以便它与应用程序紧密耦合。为此,请将
android:taskAffinity=""
添加到清单中的<activity>
标记。
非常感谢。我能够通过在清单中添加taskAffinity并通过Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK。 – dnivra 2015-02-06 16:35:21
你可能不需要'Intent.FLAG_ACTIVITY_MULTIPLE_TASK'。我认为这会让用户感到困惑。如果你有两个这样的对话框,每个对话框都在单独的任务中,你会在最近的任务列表中看到多个对话框,你将无法区分它们。在同一个任务中只有多个对话活动可能会更好,因此一旦用户放弃了其中一个对话活动,它下面的活动就会显示出来。只是我的建议。我尽量不要使用'Intent.FLAG_ACTIVITY_MULTIPLE_TASK',因为它会在以后造成很多混淆。 – 2015-02-06 16:48:44