1

android文档FLAG_ACTIVITY_NEW_TASK说:

使用此标志时,如果您现在正在启动的 Activity 已经在运行任务,则不会启动新的 Activity;相反,当前任务将简单地以其上次所处的状态被带到屏幕的前面。

我做了一个演示来实现这个,有两个应用程序: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 图标以启动 Activity B1 将使用FLAG_ACTIVITY_NEW_TASK,对吗?所以它应该把之前启动的任务放在前面,但不幸的是,一个新的活动 B1 开始了,B 任务堆栈是这样的:(底部)B1 B2 B1。

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

4

1 回答 1

0

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

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

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

于 2013-01-23T18:01:33.530 回答