Android中FLAG_ACTIVITY_SINGLE_TOP的含义

时间:2011-05-04 17:47:04

标签: android android-intent

在意图中,我可以将此标记设置为FLAG_ACTIVITY_SINGLE_TOP。有人可以解释一下它的含义,因为我只是不明白吗? =)

2 个答案:

答案 0 :(得分:16)

The tasks page says for single top:

  

如果活动的实例已存在于当前任务的顶部,则系统通过调用其onNewIntent()方法将意图路由到该实例,而不是创建活动的新实例。活动可以多次实例化,每个实例可以属于不同的任务,一个任务可以有多个实例(但只有当后端堆栈顶部的活动不是活动的现有实例时)。

     

例如,假设任务回来了   stack由根活动A组成   活动B,C和D在顶部(   堆栈是A-B-C-D; D在上面)。一个   意图到达类型的活动   D.如果D具有默认的“标准”   启动模式,一个新的实例   类是启动和堆栈   变成A-B-C-D-D。但是,如果是的话   启动模式是“singleTop”,   D的现有实例是传递的   意图通过onNewIntent(),因为   它位于堆栈顶部 - 堆栈   仍然是A-B-C-D。但是,如果有意图   到达B类活动,   然后添加一个新的B实例   堆栈,即使它的启动模式是   “singleTop”。

答案 1 :(得分:0)

Javadoc says:

If set, the activity will not be launched if it is already running at the top of 
the history stack.