在启动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 ,我的堆栈会怎么样?
答案 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的新实例。