Activity的生命周期总结

说到Activity,就不得不提起他的四种状态和七个回调方法了

四种状态:

active:运行状态,可见可交互

paused:可见不可交互

stopped:存在但不可见(任务键这种界面也叫的是不可见)

kill:销毁状态

其中容易被系统回收的容易程度是依次增加的

七种回调方法:

onCreate:第一次创建时调用,一般用于初始化操作

onStart:由不可见变为可见时调用

onResume:准备好和用户进行交互时调用

onPause:这个是在启用别的界面时调用的,是发生在新的界面加载之前,所以这个方法执行速度必须要快速

onStop:在界面完全不可见时调用,也就是在新的界面加载完成遮挡之后

onDestroy:调用这个方法之后页面变为kill状态

onRestart:在Activity被重新启动时候调用

这里直接盗用两张百度百科的图片

Activity的生命周期 

Activity栈:Activity也拥有自己的回退栈,新建的Activity一般位于栈顶,先进后出 

这里举个例子介绍一下两个Activity的 加载过程

Activity A ,B,Dialog C

打开A:A ( onCreate --> onStart -->onResume)

再打开B: A(onPause)-->B(onCreate --> onStart -->onResume) -->A(onStop)

回退到A: B(onPause)-->A(onRestart --> onStart -->onResume) -->B(onStop-->onDestroy)

再打开C:A(onPause)-->C(onCreate --> onStart -->onResume)

再回到A:C(onPause)-->A(onResume) -->C(onStop-->onDestroy)

由此可见,除了onRestart方法之外的六个方法都是两两相对应的

 

除此之外,还会有onSaveInstanceState方法和onRestoreInstanceState方法,是在Activity异常情况下才会被调用的(例如屏幕的旋转),用于保存在异常情况发生时保存用户数据的,onSaveInstanceState是在Activity被异常销毁时一定会调用的方法。在新的activity重建恢复数据时,onRestoreInstanceState方法是在onStart方法之后onResume之前的,且可以不用判空,因为如果为空的bundle是不会调用此方法的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值