android activity的四种启动模式

来源:互联网 发布:js中template 怎么用 编辑:程序博客网 时间:2024/05/22 07:51
Android总Activity的启动模式分为四种:
在AndroidManifest.xml中设置Activity启动模式:
<activity android:name=".MainActivity" android:launchMode="standard" />

Activity的四种启动模式:

1. standard
 标准启动模式,每次startctivity时都会创建新的实例,并放入同一个栈中。这个是系统默认的启动模式;
Standard模式是每次都会创建新的Activity实例,当点击返回按钮时,他会将栈顶(当前Activity)消灭,回到上一层。
A B C三个界面 都是标准模式 打开默认是A界面 然后跳转B 跳转C 在跳转C 效果就是 a--b--c--c;

2. singleTop
当任务的栈顶正好是该Activity的实例, 就重用该实例,否则和standard一样重新创建实例放入栈顶。
情况1:A B C三个界面 A B是标准模式 C是singleTop 打开默认是A 然后跳转B 跳转C 在跳转C 效果就是 a--b--c;
情况2:A B C三个界面 A B是标准模式 C是singleTop 打开默认是A 然后跳转C 跳转B 在跳转C 效果就是 a--c--b--c;

3. singleTask
栈中已经有该Activity的实例,就重用该实例。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。 
A B C三个界面 A B是标准模式 C是singleTask打开默认是A 然后跳转C 跳转B 在跳转C 效果就是 a--c;

4. singleInstance
(一种单例模式)
如果栈中没有该Activity的实例,则会创建一个,放入到另外一个单独的栈中。
如果实例 已经存在,则默认使用该实例。
情况1:A B C三个界面 A B是标准模式 C是singleInstance 打开默认是A 然后跳转B 跳转C 在跳转B 
效果就是 a--b--b;
c;
0 0
原创粉丝点击