Activity生命周期的几点认识
一.、导语
第一次写技术博客,一是技术实力有限,内容难免有不妥之处,请大虾指点,同辈海涵,发现错误我会及时更改,避免继续误导后来人。二是难免先要废话一篇,说一下我写博客的初衷:不是出于伟大的宏愿,本身我是做软件开发的,颇喜欢编程技术,这是我干这一行的初衷,其次我需要一个东西作为加深新技术理解的工具,总结之前技术并沉淀的工具,获取做分享时yy出来的帮助到人的快感的工具,个人觉得博客是一个比较合适的工具,而个人觉得写博客是得到以上几点好处的比较好的方式,yy厉害一点,说不准博客写好了之后还方便谋求到一份满意的工作- _-*。
二、内容列表
1. activity的生命周期罗列
2. 系统调用activity
3. 开发中对activity生命周期的用法
三、具体内容
1.正常情况下的activity生命周期
(1)onCreat
解释:创建activity实例,创建界面;通常用途:加载布局、初始化控件、界面未显示前加载少量数据,但不建议在oncreat方法里面做大量的数据加载(原因在于:oncreat是运行在主线程中的方法,数据加载是耗时操作,过多容易引起ANR,建议另起一条线程进行操作)
(2)onStart
解释:使界面可见,此时界面在后台,逻辑上可见,事实上不可见(此时界面处于后台,还未到前台可见)。
(3)onResum
解释:使界面从后台 转换到前台界面显示。
(4)onPause
解释:activity处于挂起状态,通常调用onSaveInstanceState方法在此做数据的保存,利用onRestoreInstanceState方法做数据的恢复工作(竖屏转换成横屏造成生命周期异常的情况下系统会自动调用这两个方法进行数据的保存和恢复)。
(5)onRestart
activity从后台挂起状态到前台,恢复activity界面,使之变得可见。
(6)onStop
activity从前台回到后台,界面变成不可见状态。
(7)onDistroy
解释:activity实例被销毁;通常使用:利用destroy方法做资源的回收。
2.异常情况下的activity生命周期
造成activity生命周期异常的情况有很多种,例如横竖屏切换造成的生命周期异常、activity优先级变低被系统回收(例如:activity被切换到后台,activity优先级变低,内存等资源比较紧张的时候,系统会回收掉一些优先级不高的资源),在此情况下activity回先后调用本身的onpause()方法,onStop()方法,最后调用onDistroy()方法,如果重建activity还会调用onCreat()方法,onRestart()方法重建activity,过程中会在onDistroy方法之前调用onSaveInstanceState()方法对数据进行保存,具体保存的数据内容根据实际需求进行确定,如果activity还有重现的可能系统会调用onRestoreInstanceState()方法进行数据恢复。
四、总结语:
对activity的认识个人认为需要注意到两个方面:
1.需要对activity生命周期中每个方法执行的条件和执行之后的效果。
2.实际开发中怎样去利用activity生命周期中的各个环节为我们服务。