转载请注明出处:http://blog.csdn.net/u013220682/article/details/50595690
在上一篇Activity启动模式之launchMode文章中,我提到过Activity的Flag标记位。其实Activity的Flags有很多,我在这里只分析常用的标记位。标记位的作用有很多,有的标记位可以设定Activity的启动模式,比如FLAG_ACTIVITY_NEW_TASKS 和 FLAG_ACTIVITY_SINGLE_TOP 等;还有的标记位可以影响Activity的生命状态,比如FLAG_ACTIVITY_CLEAR_TOP 和 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS等。
FLAG_ACTIVITY_NEW_TASK
这个标记位的作用是为Activity指定singleTask启动模式,其效果和在清单文件中指定相同。
FLAG_ACTIVITY_SINGLE_TOP
这个标记位的作用是为Activity指定singleTop启动模式,其效果和在清单文件中指定相同。
FLAG_ACTIVITY_CLEAR_TOP
具有此标记位的Activity,当它启动时,在同一个任务栈中,所有位于它上面的Activity都要出栈。
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
具有这个标记的Activity不会出现在历史Activity列表中(这里点击手机除back和home键的另外一个键就会出现recent列表了),当某些情况下我们不希望用户通过历史列表回到我们的Activity的时候这个标记比较有用。它等同于在清单文件xml中指定Activity的属性android:excludeFromRecents = "true";
上面都是几个比较常用的标记位,剩下的标记位读者可以查看官方文档去了解。大部分情况下我们不需要为Activity指定标记位,因此对于标记位理解即可。在使用标记位的时候要注意有些标记位是系统内部使用的,应用程序不需要手动去设置这些标记位以防出现问题。