activity 生命周期(详解)

1.介绍Activity生命周期分为两部分内容:
1)典型情况下的生命周期
2)异常情况下的生命周期
异常生命周期:指activity被系统回收或由于当前设备的Configuration发生改变导致activity被销毁重建

2。典型生命周期
1)onCreate:表示activity正在被创建,这是生命周期的第一个方法,在这个方法中我们可以做一些初始化工作,
2)onRestart:表示activity正在重新启动。一般情况下,当当前activity从不可见重新变为可见状态,
onRestart就会被调用
3)onStart:表示activity正在被启动,即将开始,这时activity已经可见了,但是还没有出现在前台,还无法和用户交互,
4)onResume:表示actvity已经可见了,并且出现在前台已经开始活动,
5)onPause:表示activity正在停止,正常情况下,onstop就会被调用,在特殊情况下,如果这个时候
快速的回到当前activity,那么onResume会被调用。
6)onStop:表示activity即将停止,可以做一些稍微重量级的回收工作,同样不能太耗时
7)onDestroy:表示activity即将被销毁,这是activity生命周期中最后一个回调在这里,我们可以做最后的资源释放

3。增加几个具体说明
1)针对一个特定的activity,第一次启动,回调如下:onCreate---onStart---onResume
2)当用户打开新的activity或者切换到桌面的时候,回调如下:
onPause---onStop, 如果透明主题,不会调用onStop
3)当用户再次回到原activity时,回调如下:onRestart---onStart--onResume
4)当用户按back键回退时,回调onPause---onStop--onDestroy

3.异常情况下的生命周期
我们知道,activity除了受用户操作所导致的正常生命周期方法调度,还有一些异常情况,比如当前资源相关的西永配置发生改变以及系统内存不足时,activity就可能被杀死。
情况一:
资源相关的系统配置发生改变导致activty被杀死并重新创建
当系统配置发生改变,activity会被销毁,其onPause,onStop,onDestroy均会被调用,同时由于activity是在异常情况下终止的,系统会调用onSaveInstanceState来保存当前activity状态,这个方法
的调用时机是onStop之前,他和onPause没有既定的时序关系,他可能在onPause之前,也可能在之后,这个方法只会出现在Activity被异常终止的情况下,正常情况下不会调用,当activity被重新创建之后,系统会调用onRestoreInstanceState,并把activity销毁时所保存的Bundle对象作为参数传递给onRestoreInstanceState和Create方法,因此通过这两个方法判断activity是否被重建,如果被重建我们就取出当前保存的数据并恢复,
情况二:资源不足导致低优先级的activity被杀死
activity按照优先级从高到低,可以分为如下三种:
1)前台activity------正在和用户交互的activity,优先级最高
2)可见但非前台Activity------比如activity中弹出一对话框
3)后台activty------已经被暂停的activity,比如执行了onStop,优先级最低
当系统内存不足时,一些后台工作不适合脱离四大组件而独自运行在后台中,这样进程很容易被杀死,比较好的方法是将后台工作放入service中从而保证进程有一定的优先级,这样就不会轻易第被系统杀死。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值