Activity生命周期及创建模式
来源:互联网 发布:tda分析软件正版费用 编辑:程序博客网 时间:2024/05/29 07:15
Actiivty的生命周期,姑且理解为其方法的调用顺序
onCreate-onStart-onResume-onPause-onStop-onDestory。
如果是返回到这个Activity,就是onRestart-onStart
一般我们在onCreate的时候就加载控件,配置布局文件,如果是在onStart中写加载控件,有可能在返回这个Activity又再调用一次onStart导致多次加载,故不建议在onStart中写。
Activity的创建模式,或者说启动模式,有4种,standard,singleTop,singleTask,singleInstance
standard就是默认的启动模式,一般不声明都模式是这种,它是每次都会创建。比如启动了ActivityA,然后通过A启动B,现在在B中不通过返回键,但是要跳转到A(如在列表页选择添加,添加完成后返回列表页一样)。如果是这种模式,那么会再再次创建A,相当于历史栈里面是A-B-A。
singleTop是栈顶模式,必须在Menifest.xml中手动声明 android:launchMode="singleTop"。特点就是只要处于栈定,不再创建,如上面的例子,A创建B,B再创建A,如果A声明为singleTop模式,那么不会再次创建A,而是直接调用A的onStart方法。
也适用于那种防止多次点击(因网络延时导致)创建多次的场景,缺点是只使用于相邻两个Activity切换
singleTask是单任务模式,android:launchMode="singleTask"。特点是在整个栈中,只要有一个实例,那么将不再创建。使用场景,A创建B,B创建C,C创建D,D再直接返回A。如果此时A用singleTop模式,肯定没用,因为回退栈顶变成C了。但是如果A声明为单任务模式,那么将可以直接调用A,同时自动销毁B,C,D
这种模式其实可以理解为多个Activity下的singleTop模式
singleInstance是单实例模式,android:launchMode="singleInstance"。特点是它会创建一个独立的栈,专门存放这个实例。其他应用也可以调用它,注意是其他应用。比如应用A创建了ActivityA,A要访问应用B中的ActivityB(例如完成支付),成功后再返回A,如果是之前的模式,必定创建。如果A声明为单实例模式,那么不会,而是可以直接调用。
可以理解为多应用下的singleTask模式。使用例子:浏览器。
- Activity生命周期及创建模式
- Activity 生命周期及启动模式
- 【Activity】Activity生命周期及启动模式
- Activity的生命周期及加载模式
- Activity生命周期及启动模式深入理解
- Activity的生命周期及启动模式整理
- Android Activity生命周期及启动模式详解
- 一、Activity生命周期及启动模式
- Android之Activity生命周期及启动模式
- Activity生命周期启动方式及启动模式
- android activity 生命周期及启动模式
- Android Activity的生命周期及启动模式
- Android的activity启动模式,和生命周期,及onkeydown方法
- Activity(一)—生命周期及启动模式
- Activity及Activity的生命周期
- Android Activity及生命周期
- Activity生命周期 之 重新创建一个Activity
- interView - Activity生命周期,启动模式
- HDU 4500--小Q系列故事——屌丝的逆袭
- hive优化之------控制hive任务中的map数和reduce数
- 含表头的栈ADT(C语言版)
- 转载08:(译)如何恰当地学习 JavaScript(6-8周)
- 穷举递归和回溯算法
- Activity生命周期及创建模式
- sqoop操作与使用
- B树 (插入操作)
- 使用Jquery解析Json基础知识
- Jquery插件实现点击获取验证码后60秒内禁止重新获取
- 保持专注
- xtrabackup<一、 原理>
- 博弈论简析
- 2015,继续前行