Activity 4种启动模式launchMode
来源:互联网 发布:新闻资讯网站php源码 编辑:程序博客网 时间:2024/06/16 09:52
Activity的启动模式
* Activity task stack:任务栈
* 栈
* 连续的内存空间
* 后进先出
* 标准模式:默认就是标准模式
* singleTop:如果Activity的实例不在栈顶,那么就会创建,如果已经在栈顶了,就不会再创建了
* singleTask:如果Activity没有被创建任何实例,那么启动时会创建,如果已经创建了一个实例,那么启动时是返回至该Activity而不会再创建该Activity
* 保证栈中永远只有一个该Activity的实例
* singleInstance:在一个单独的任务栈中创建该Activity的实例,然后再也不会创建第二个实例了,以后的每次启动该Activity,都是把该Activity所在的栈显示至前台
* 保证整个系统的内存都只有一个该Activity的实例
Activity的四种启动模式
每个应用会有一个Activity任务栈,存放已启动的Activity
Activity的启动模式,修改任务栈的排列情况
- standard 标准启动模式
- singleTop 单一顶部模式
- 如果任务栈的栈顶存在这个要开启的activity,不会重新的创建activity,而是复用已经存在的activity。保证栈顶如果存在,不会重复创建。
- 应用场景:浏览器的书签
singeTask 单一任务栈,在当前任务栈里面只能有一个实例存在
- 当开启activity的时候,就去检查在任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的activity,并且把这个activity上面的所有的别的activity都清空,复用这个已经存在的activity。保证整个任务栈里面只有一个实例存在
- 应用场景:浏览器的activity
- 如果一个activity的创建需要占用大量的系统资源(cpu,内存)一般配置这个activity为singletask的启动模式。webkit内核 c代码
singleInstance启动模式非常特殊, activity会运行在自己的任务栈里面,并且这个任务栈里面只有一个实例存在
- 如果你要保证一个activity在整个手机操作系统里面只有一个实例存在,使用singleInstance
- 应用场景: 电话拨打界面
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click1(View v){ Intent intent = new Intent(this, MainActivity.class); startActivity(intent); } public void click2(View v){ Intent intent = new Intent(this, SecondActivity.class); startActivity(intent); }}
public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); } public void click1(View v){ Intent intent = new Intent(this, MainActivity.class); startActivity(intent); } public void click2(View v){ Intent intent = new Intent(this, SecondActivity.class); startActivity(intent); }}
参考:Android Activity
阅读全文
0 0
- Activity 4种启动模式launchMode
- Activity启动模式-LaunchMode
- Activity启动模式launchMode
- android 中的4种activity启动模式(launchMode)
- Android activity的4种启动模式,launchMode,图文详解
- Activity四种启动模式(launchMode)
- Activity的四种启动模式(LaunchMode)
- Activity的四种启动模式 LaunchMode
- Activity的四种启动模式launchMode
- Activity 的四种启动模式(launchMode)
- Activity的启动模式LaunchMode
- Activity的启动模式(LaunchMode)
- Activity的启动模式LaunchMode
- Activity启动模式之launchMode
- Activity启动模式(LaunchMode)
- Activity启动模式(LaunchMode)
- Activity的启动模式(LaunchMode)
- Activity启动模式(launchMode)详解
- 关于js中几种遍历方法性能的测试
- leetcode 318. Maximum Product of Word Lengths
- Redhat6.5二进制安装mysql5.7.9(详细)
- bootstrap获取隐藏列值
- Count on a tree SPOJ
- Activity 4种启动模式launchMode
- Linux实验室 apt命令应用全解析
- jmeter中文版新手入门教程
- MySQL模糊查询特殊字符如何查询?
- 浮动和清除浮动
- Windows+Anaconda2环境下安装测试basemap
- Linux Centos 可以平通IP和域名,但打开火狐却上不了网
- 算法系列——Power of Two
- 锚伪类-关于"<a>"链接状态