安卓activity生命周期

 

activity的创建过程如下:

 

                       

由上图可知activity生命周期调用的方法如下:

onCreate():表明activity正在被创建,可以在这个方法完成一些初始化工作,如加载界面布局,初始化activity所需的数据等

onStart():表明activity正在被启动,此时activity已经可见,但还没有出现在前台,所以我们无法看到

onResume():此时activity已经出现在前台 ,已经准备好与我们进行交互

onPause():表明activity正在停止,此时activity仍然可见,只是不在前台,在这个方法进行的操作不能太耗时,否则会影响到新activity的显示

onStop():表示activity即将停止,此时activity已经不可见

onDesstroy():b表示activity即将被销毁,可以在这个方法中回收和释放资源

onRestart():activity正在被重新启动,该方法在当前activity由不可见变为可见时调用

 

从可见与不可见的角度:onStart()和onStop()是一对

从是否在前台的角度:onResume()和onPause()是一队

 

以下为几种情况下生命周期的调用过程:

1.当打开新的活动时:onPause()——>onStop();

   注意:只有在老的activity的onPause()方法调用后新activity的onResume()方法才会被调用,所以onPause()方法不能执行耗时操作,否则会影响到新activity的显示。

2.当按下back键回退到原来的activity时:

(1)原本显示的activity:onPause()——>onStop()——>onDestory();

(2)原本位于stop状态的activity:onRestart()——>onStart()——>onResume();

3.异常情况:activity因资源相关的系统配置发生改变以及系统内存不足的情况下被杀死

   在activity会被重新创建的情况,系统在会调用onSaveInstanceState()方法保存Bundle对象作为参数传递给重新创建的activity的onCreate()方法和onRestoreInstanceState(),因此我们可以在这两个方法中恢复数据。同时系统也会为我们自动保存当前activity的视图结构并在重建后自动恢复

注意:

1.onCreate()比onRestoreInstanceState()先调用,且当不是异常情况重建activity的话则onCreate()传递的是空参数,而onRestoreInstanceState()则不被调用;

2.onSaveInstanceState()的调用在onStop()之前,和onPause()则没有先后关联;

系统自动保存和恢复view层次结构的流程:activity委托window去保存数据,window则委托它上面的顶级容器(viewgroup)去保存数据。最后顶层容器再去通知它所有的子元素保存数据,层层委托

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值