Kat*_*lon 13 android android-intent android-activity
该标志FLAG_ACTIVITY_CLEAR_TOP查找包含活动X的任务,并清除顶部以使X进入其恢复状态.标志FLAG_ACTIVITY_SINGLE_TOP只会将X的单个实例保留在顶部.因此,SINGLE_TOP如果我已经在使用,我永远不需要包括CLEAR_TOP:那是因为CLEAR_TOP行为包括SINGLE_TOP行为.那么为什么这么多样本代码包含两者呢?是因为那些开发人员不了解全部的力量CLEAR_TOP吗?同样,我在网上看到的几乎所有例子都包括两者.冗余为什么?
例如,如果我CLEAR_TOP在任务上调用X W->X->Y->Z,那么我就得到了W->X.另一方面,如果我打算在X上调用SINGLE_TOP来完成任务,W->X->Y->Z我会最终W->X->Y->Z->X调用它,如果我打电话给ZI就可以了W->X->Y->Z.所以实际上CLEAR_TOP没有添加任何东西:它就像将0添加到其他值.
Dav*_*ser 16
行为CLEAR_TOP是不同的,取决于Activity是否是singleTop活动或者SINGLE_TOP还提供了标志.
我们首先假设Activity具有标准启动模式(不是singleTop).如果您使用CLEAR_TOP不带标记SINGLE_TOP,Android会执行以下操作:
onCreate()该实例.相反,我们假设Activity仍然具有标准的启动模式(不是singleTop).如果您使用的CLEAR_TOP标志与一起的SINGLE_TOP标志,Android的执行以下操作:
onNewIntent()目标活动的现有实例,路过Intent那是在使用startActivity()电话.如您所见,行为是不同的.
注意:如果目标Activity launchMode="singleTop"在清单中声明,则使用的行为CLEAR_TOP应与您指定的相同SINGLE_TOP.但是,Android中存在一些与此相关的错误(我目前无法找到链接).因此,您不应该依赖于该launchMode设置,但SINGLE_TOP如果您希望重新创建目标Activity的现有实例,则始终指定flag.
| 归档时间: |
|
| 查看次数: |
1559 次 |
| 最近记录: |