android学习笔记——Activity的生命周期
2015-12-10 21:18
411 查看
1、完整生存期
活动在onCreate()和onDestroy()方法之间所经历的,就是完整生存期。一般情况下,一个活动会在onCreate()中完成各种初始化操作,而在onDestroy()中完成释放内存的操作。
2、可见生存期
活动在onStart()和onStop()方法之间所经历的,就是可见生存期。在可见生存期内,活动对于用户总是可见的,即便有可能无法和用户进行交互。我们可以通过这两个方法,合理的管理那些对用户可见的资源。比如在onStart()中对资源进行加载,而在onStop()中对资源进行释放,从而保证处于停止状态的活动不会占用过多的内存。
3、前台生存期
活动在onResume()和onPause()方法之间所经历的,就是前台生存期。在前台生存期内,活动总是处于运行状态的,此时的活动是可以与用户进行交互的,我们平时接触最多的就是这个状态下的活动。
还有一个在这些之外,而又会不断出现的方法onRestart()。即在重启一个活动时会用到,就是该活动被收入栈中后没有被回收,此时不需要onCreate(),只需onRestart、onStart、onResume顺序调用,如果被回收的话就需要重新onCreate了。
用张图来说明一下以上的内容
![](http://img.blog.csdn.net/20151210211846759?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
活动被回收了怎么办?
这样就引出了一个新的问题,如果活动中存有一些临时的数据该怎么办呢?重新创建的话数据一定不在了呀?
在Activity中提供了一个这样的方法:onSaveInstanceState()回调方法,这个方法保证活动被回收之前调用,它携带一个Bundle类型的参数,可以使用putString()、putInt()等方法,参数是以键值对的方式进行传递。
数据恢复
仔细看看onCreate方法,它提供了一个Bundle参数,那这你就该明白怎么做了吧~
if(saveInstanceState != null){
String tempData = saveInstanceState.getString("data");
Log.d(TAG,tempData);
}
对于Bundle的传递方式,其实可以将Bundle塞进Intent中,具体的用法查阅文档吧~
活动在onCreate()和onDestroy()方法之间所经历的,就是完整生存期。一般情况下,一个活动会在onCreate()中完成各种初始化操作,而在onDestroy()中完成释放内存的操作。
2、可见生存期
活动在onStart()和onStop()方法之间所经历的,就是可见生存期。在可见生存期内,活动对于用户总是可见的,即便有可能无法和用户进行交互。我们可以通过这两个方法,合理的管理那些对用户可见的资源。比如在onStart()中对资源进行加载,而在onStop()中对资源进行释放,从而保证处于停止状态的活动不会占用过多的内存。
3、前台生存期
活动在onResume()和onPause()方法之间所经历的,就是前台生存期。在前台生存期内,活动总是处于运行状态的,此时的活动是可以与用户进行交互的,我们平时接触最多的就是这个状态下的活动。
还有一个在这些之外,而又会不断出现的方法onRestart()。即在重启一个活动时会用到,就是该活动被收入栈中后没有被回收,此时不需要onCreate(),只需onRestart、onStart、onResume顺序调用,如果被回收的话就需要重新onCreate了。
用张图来说明一下以上的内容
活动被回收了怎么办?
这样就引出了一个新的问题,如果活动中存有一些临时的数据该怎么办呢?重新创建的话数据一定不在了呀?
在Activity中提供了一个这样的方法:onSaveInstanceState()回调方法,这个方法保证活动被回收之前调用,它携带一个Bundle类型的参数,可以使用putString()、putInt()等方法,参数是以键值对的方式进行传递。
数据恢复
仔细看看onCreate方法,它提供了一个Bundle参数,那这你就该明白怎么做了吧~
if(saveInstanceState != null){
String tempData = saveInstanceState.getString("data");
Log.d(TAG,tempData);
}
对于Bundle的传递方式,其实可以将Bundle塞进Intent中,具体的用法查阅文档吧~
相关文章推荐
- android学习笔记——活动的启动模式
- Android 源码解析: 图片加载库Picasso 1
- Android 开发者的 RxJava 详解
- android学习笔记——Activity的调用小技巧
- android学习笔记——Intent
- Android自定义ProgressBar样式
- android学习笔记——AlertDialog控件
- android常用工具
- Android Menu中android:showAsAction属性
- android学习笔记——Chronometer控件
- android学习笔记——DatePicker、TimePicker探究
- android学习笔记——AnalogClock、DigitalClock探究
- android学习笔记——ScrollView
- android学习笔记——进度条集合学习
- Android隐式启动Activity匹配详解:Action,category,data
- Android (默认)隐藏Menu Item
- android学习笔记——Spinner控件
- phonegap5.0+android studio本地打包应用
- Freescale IMX6 Android (4): 基于TQIMX6 给Toolbox添加LED控制程序
- Cordova android框架详解