Android中FLAG_ACTIVITY_SINGLE_TOP的含义

lom*_*mza 3 android android-intent

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

Hak*_*bay 16

单个顶部的任务页面说:

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

例如,假设任务的后台堆栈由根活动A组成,其中活动B,C和D位于顶部(堆栈为ABCD; D位于顶部).意图到达类型D的活动.如果D具有默认的"标准"启动模式,则启动该类的新实例并且堆栈变为ABCDD.但是,如果D的启动模式是"singleTop",则现有的D实例通过onNewIntent()传递intent,因为它位于堆栈的顶部 - 堆栈仍然是ABCD.但是,如果意图到达类型B的活动,则将新的B实例添加到堆栈中,即使其启动模式为"singleTop".