Android读书笔记------LaunchMode

来源:互联网 发布:linux 查看服务器类型 编辑:程序博客网 时间:2024/05/16 12:22

(内容来源于Android开发艺术探索)
Android Activity运行的4种状态
1、standard模式,默认情况下启动的模式,每一个新启动的Activity都会在栈内创建一个新的实例。例如栈内有页面CBA,当再启动一个C页面时栈内的情况会变为CBA C。
2.singleTop 再启动一个页面时,首先会去栈内的栈顶处查看栈顶是否为待启动的activity,如果是则复用,会运行newIntent方法。否则重新实例化一个对象在栈内
3.singleTask 栈内复用模式,每次启动一个activity时都会在栈内查询是否有该activity,不论在栈内的位置,进行复用,同样会调用newIntent方法。重用的activity会到栈顶。
4.singleInstance 增强版的singleTask模式,这种模式下启动的activity会在一个独立的栈内运行

名词:任务栈:TaskAffinity(任务相关性)
默认情况下所有任务栈的名字都为包名,也可以自己指定,但不能与包名相同,否则等于没有指定。主要和singleTask和allowTaskReparenting属性联合起来使用。

      <activity            android:name=".MainActivity"            android:label="@string/app_name"            android:launchMode="singleTask"            android:taskAffinity="com.tjpld.aaa">            //代码启动方式    Intent intent=new Intent();    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        
0 0