Activity的生命周期之图记表查

生命周期

Activity生命周期.jpg

方法调用时机说明
onCreate在Activity第一次被创建时在此完成各种初始化操作
onStart在Activity即将可见时
onResume在Activity准备好与用户交互
onPause在用户跳转另一个Activity或可见但不可交互时此处不能进行一些耗时操作,因为会影响新Activity的显示
onStop在Activity完全不可见时
onDestory在Activity被销毁之前在此进行一些回收工作和资源释放
onRestart在活动被重新启动时
onNewIntent跳转自身当Activity启动模式不为standard时存在复用可能
onSaveInstanceState在onStop之前调用
onRestoreInstanceState在Activity被异常结束时的条件下,在onResume前调用Activity被异常结束时,该方法会被执行,用于取出在onSaveInstanceState中存储的数据

常见执行

情形ActivityA,BA,B执行顺序
第一次启动ActivityAonCreate(A)>onStart(A)>onResume(A)
复用启动ActivityAonNewIntent(A)>onResume(A)
ActivityA启动BonPause(A)>onCreate(B)>onStart(B)>onResume(B)>onStop(A) 若B为透明使得A仍然可见则onStop(A)将不执行
ActiviyB返回AonPause(B)>onRestart(A)>onStart(A)>onResume(A)>onStop(B)>onDestory(B)
ActivityA在异常结束后启动onCreate(A)>onStart>(A)>onRestoreInstanceState(A)>onResume(A)

补充说明

  • Activity的onDestory方法执行可以通过判断此时的Activity是压栈还是出栈来判断,跳转新Activity时旧Activity从栈顶被压入栈中,此时仍存在被复用可能因此不会执行onDestory方法,但返回上一个Activity则是将Activity从栈顶移除栈,此时Activity进入销毁状态,则会执行onDestory方法
  • onSaveInstanceState 方法会在onStop之前调用且每次都执行,而onRestoreInstanceState方法则有Activity异常结束的条件才会执行,在这里我理解为Activity的销毁存在不确定性,例如跳转新Activity时,旧Activity会执行到onstop方法,此时应用切换横竖屏再返回,如果不是onSaveInstanceState 每次都执行则会遗失数据。
  • onSaveInstanceState 数据通过bundle来保存,取用则可以在onCreate与onRestoreInstanceState 中取得,但onCreate中需要判空来确认是第一次创建还是重建
  • Activity异常结束的情况
    • 配置被改变
      • 常用配置 orentation(屏幕方向)、screenSize(屏幕尺寸)、locale(系统语言环境)…
      • 避免重启
        在Activity的清单文件中声明android:configChanges属性,之后在对应Activity发生配置改变时直接调用onConfigurationChanged方法。
    • 系统内存不足,低优先级的Activity被回收
      优先级:前台正在交互>可见但不可交互>后台Activity
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值