从另一个Task启动singleTop Activity

时间:2014-02-11 21:31:46

标签: android

在启动Activity时理解 singleTop 标志时遇到一些麻烦。

在我的应用中,我有两项任务:

Task 1 : A,B,C,D

Task 2 : X,Y,Z

活动D 外,所有活动都是“标准” 模式 - 她有“singleTop”

两项任务都在运行。

任务1 [A,B,C,D]
任务2 [X,Y,Z]

现在是Z活动被打开了。如果我从活动 Z 运行活动 D ,我的堆栈会怎么样?

1 个答案:

答案 0 :(得分:1)

假设实际上有2个不同的应用程序(正如您在评论中所述)并且活动D在清单中没有定义特定的android:taskAffinity,则会发生以下情况:

  • 如果Activity Z在没有任何特殊Intent标志的情况下启动Activity D,则活动D的新实例将启动到任务2中,以便任务2中的Activity堆栈将包含[X,Y,Z,D]

  • 如果活动Z启动活动D并在启动时设置Intent.FLAG_ACTIVITY_NEW_TASK,任务2将转到后台,任务1将被带到前台,onNewIntent()将被调用将在任务1中的活动D的现有实例上调用任务1中的活动D的现有实例,然后调用onResume()。将不会创建活动D的新实例。