使用FLAG_ACTIVITY_NEW_TASK将现有任务放在前面

时间:2013-01-23 17:02:43

标签: android android-activity back-stack

FLAG_ACTIVITY_NEW_TASK的android文档说:

使用此标志时,如果任务已在您正在启动的活动上运行,则不会启动新活动;相反,当前任务将简单地以最后一个状态显示在屏幕的前面。

我做了一个演示来实现这个,有两个应用程序:A和B. A包含活动A1,B包含活动B1,B2。

我按照以下步骤操作:Home Screen(Application A icon) --> A1 (FLAG_ACTIVITY_NEW_TASK to start B1)--> B1 -->B2 --> Home Screen(Application B icon)-->,根据我的理解,点击启动器中的应用程序B图标启动活动B1将使用FLAG_ACTIVITY_NEW_TASK,对吧?所以它应该把任务开始前面,但不幸的是,事实是一个新的活动B1启动,B任务堆栈是这样的:(底部)B1 B2 B1。

当我点击启动器中的应用程序B图标时,如何让现有任务显示在前面

1 个答案:

答案 0 :(得分:0)

A和B是两个不同的应用程序,对吧? 这意味着两者都将作为一个单独的进程执行,并且表现为单独的任务。

因此,当您将FLAG_ACTIVITY_NEW_TASK设置为A时,它将为A创建一个单独的任务,并将其作为根活动或将现有的A实例带到前面。

当B从启动器启动时,根据android正常启动器行为,它将作为一个单独的任务启动,B将具有单独的堆栈。