Activity的生命周期和启动模式
来源:互联网 发布:透视镜软件下载 编辑:程序博客网 时间:2024/06/08 01:31
一个活动在其生命周期中最多会有四种状态:运行状态、暂停状态、停止状态和销毁状态。Activity类中定义了7个回调方法,覆盖了生命周期的每一个环节。
1. onCreate():它会在活动 第一次被创建的时候调用。在这个方法中可以完成活动的初始化操作,比如加载布局、绑定事件等。
2. onStart():这个方法在活动由不可见变为可见的时候调用。
3. onResume():这个方法在活动准备好和用户进行交互的时候调用。
4. onPause():这个方法在系统准备去启动或者恢复另一个活动的时候调用。
5. onStop():这个方法在活动完全不可见的时候调用。
6. onDestroy():这个方法在活动被销毁之前调用,之后活动的状态将变为销毁状态。
7. onRestart():这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。
当一个屏幕旋转的时候的生命周期是怎样的?
首先会被销毁掉,再重新创建。例如:当前程序处于onPause(),旋转过程调用的顺序为:onPause()→onStop()→onDestroy()→onCreate()→onStart()→onResume()→onPause。
Activity中还提供了一个onSaveInstanceState()回调方法,这个方法会在onStop()之前被执行,我们可以在这方法中保存一些数据,解决活动被回收时临时数据得不到保存的问题。
通过重写onSaveInstanceState(Bundle outState)方法可以保存数据:
@Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); String s = input.getText().toString(); outState.putString("name",s); }在onCreate()方法中可以取出数据,并且恢复数据:
if (savedInstanceState!=null){ String name = savedInstanceState.getString("name", null); Log.i(TAG, "onCreate: ++++++++++"+name); }
活动的启动模式一共有四种:standard、singleTop、singleTask和singleInstance,可以在AndroidManifest.xml配置文件中给<activity>标签指定android:launchMode属性来选择启动模式。
Android 是使用返回栈来管理活动的。栈是一种后进先出的数据结构,在默认情况 下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置。而每当我们 按下 Back 键或调用 finish()方法去销毁一个活动时,处于栈顶的活动会出栈,这时前一个入 栈的活动就会重新处于栈顶的位置。系统总是会显示处于栈顶的活动给用户。
standard模式:活动默认的启动模式,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置。
当我们返回的时候他也是从最上边开始返回的。
singleTop:在启动活动的时候如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。
可以看到在当前活动为Activity2的时候启动Activity2,由于栈顶活动为Activity2,所以没有创建新的新的活动,而是直接使用。
singleTask:每次启动活动时系统会首先在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这活动之上的所有活动全部出栈,如果没有则创建一个新的活动。
可以看到在启动Activity3的时候,返回栈中有这个活动,于是直接使用,并把出于其上的Activity1和Activity2全部出栈。
singleInstance:被指定为singleInstance的活动在启动时会启用一个新的返回栈来管理这个活动。
在返回的时候,由于存在了两个栈,会先返回当前栈,等栈为空,才开始返回另一个栈。
- Activity的生命周期和启动模式
- Activity的生命周期和启动模式总结
- Activity的生命周期和启动模式
- Activity的生命周期和启动模式
- Activity的生命周期和启动模式
- Activity的生命周期和启动模式
- Activity的生命周期和启动模式
- Activity的生命周期和启动模式
- 第一章 Activity的生命周期和启动模式
- 第一章 Activity的生命周期和启动模式
- Activity的生命周期和启动模式
- Activity的生命周期和启动模式详解
- Activity的生命周期和启动模式
- Activity的生命周期和启动模式
- Activity的生命周期和启动模式
- Activity的生命周期和启动模式
- 第一章: Activity的生命周期和启动模式:
- Activity的生命周期和启动模式
- 小程序字体 text 多种属性样式
- python 机器学习中各种距离
- 802.11 Backoff Timer,bugFix_timer_
- table的表头固定--上下滚动表头固定,左右滚动跟随滚动
- LeetCode笔记(1-10)?4,5,10
- Activity的生命周期和启动模式
- 最小生成树之普里姆算法
- Linux系统上安装VMware Workstation
- 苹果内存取证工具volafox
- c语言编程中%g是什么格式
- 笔记:关于protobuf协议传输repeated(即表/数组)类型数据出错问题。
- JAVA正则表达式 Pattern和Matcher
- try中return某值,而finally中修改了这个值
- Java排序算法之基数排序