android学习笔记(4)
来源:互联网 发布:淘宝客网站推广技巧 编辑:程序博客网 时间:2024/06/16 11:28
Android 中 Activity 启动模式
Activity有四种启动模式:standard(默认), singleTop, singleTask和 singleInstance。
默认是standard,类似栈,先入后出。
参考资料 :http://www.cnblogs.com/meizixiong/archive/2013/07/03/3170591.html
可以测试下同一activity的变化
首先,默认为
standard
每次激活Activity时(startActivity),都创建Activity实例,并放入任务栈;
private TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv= (TextView) findViewById(R.id.tv); tv.setText(String.format("Task:%d\n Current:%s",getTaskId(),toString())); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {//从当前activity跳转到MainActivity startActivity(new Intent(MainActivity.this,MainActivity.class)); } });}
不断按button可以发现task没有发生改变,而地址不断改变
startActivity(new Intent(MainActivity.this,Main2Activity.class));
修改代码,让其在两个activity之间不断跳转
结果和上一结果一样,
singleTop
如果某个Activity自己激活自己,即任务栈栈顶就是该Activity,则不需要创建,其余情况都要创建Activity实例;
在配置文件中修改启动模式
<activity android:name=".MainActivity" android:launchMode="singleTop">然后重复之前的动作同一activity之间不会变化而且会发现后腿的时候,会直接出去如果有两个activity,跳转其他activity时会改变地址singleTask
如果要激活的那个Activity在任务栈中存在该实例,则不需要创建,只需要把此Activity放入栈顶,并把该Activity以上的Activity实例都pop;
可以清楚的看到1没变
因为先开的1
当开到2时,1还在栈里面,这个时候如果打开1会把2弹出,而且1退出就可以直接出去,从2按后退可以回到1.
singleInstance
如果应用1的任务栈中创建了MainActivity实例,如果应用2也要激活MainActivity,则不需要创建,两应用共享该Activity实例;
两个activity不公用同一个栈,不按退出的话栈并不会清空
栈里只会存一个实例
不管从哪都要两步才能退出,而且当你退出一个栈之后,重新到另一个栈,你可以看到地址变了
1 0
- android学习笔记(4)
- Android学习笔记4
- android学习笔记4
- android学习笔记(4)
- Android学习笔记4
- ANDROID学习笔记4
- Android的OpenGL学习笔记(4)
- Android学习笔记(4):Activity生命周期
- android 学习笔记代码片段(4)
- Android学习笔记(4)--反编译
- Android开发学习笔记(4)
- android学习笔记4:画图
- Android 学习笔记(4) --framelayout
- android学习笔记4-Spinner
- Android学习笔记4-通知
- android学习笔记NO.4
- Android学习笔记4---配置文件
- android开发学习笔记(4)导入Android工程
- Android开发中的小技巧(1)
- ZOJ 2208 To and Fro
- 基于空间相关的图像模板匹配及MATLAB实现
- jdk环境的配置
- 【C语言】常用的转义字符及其含义
- android学习笔记(4)
- 一条sql语句分组、升序、指定条数查询
- Exploring Heap-Based Buffer Overflows with the Application Verifier
- ZOJ 2256Mincost
- 【单例模式】简单C++实现
- 《腾讯传》读后感
- Android Apk的打包流程
- 详谈数据库事务
- GitHub使用步骤