Activity生命周期

在这里插入图片描述
如上图,activity从创建到销毁的声明周期方法:

  • onCreate :创建Activity,初始化activity
  • onStart :启动Activity,activity已经可见
  • onResume:activity获得焦点
  • onPause:activity失去焦点。新的activity会在此方法后启动
  • onStop:activity停止运行
  • onDestroy:销毁activity
  • onRestart:重新启动
Activity A 跳转到Activity B 经历生命周期方法:

A:onPause ➜ B: onCreate、onStart、onResume ➜ A:onStop
下面是A跳转B的生命周期日志:

: =====A   onPause
: =====B   onCreate
: =====B   onStart
: =====B   onResume
: =====A   onStop

B返回A:

: =====B   onPause
: =====A   onRestart 
: =====A   onStart
: =====A   onResume
: =====B   onStop
: =====B   onDestroy

熄屏、屏幕唤起时生命周期:
熄屏:onPause、onStop
: =====A  onPause
: =====A  onStop
屏幕唤起:onRestart、onStart、onResume
: =====A  onRestart  
: =====A  onStart
: =====A  onResume
按home健返回桌面在返回当前Activity和上面生命周期一致:
: =====A  onPause
: =====A  onStop
: =====A  onRestart  
: =====A  onStart
: =====A  onResume
横竖屏切换时生命周期

activity先销毁在创建:

onPause ➜ onStop ➜ onDestroy ➜ onCreate ➜ onStart ➜ onResume

: =====A  onPause
: =====A  onSaveInstanceState
: =====A  onStop
: =====A  onDestroy
: =====A  onCreate
: =====A  onStart
: =====A  onRestoreInstanceState
: =====A  onResume

横竖屏切换时,可以在onSaveInstanceStateonRestoreInstanceState作数据的恢复与保存
设置configChanges属性时:android:configChanges="orientation",此时activity不会被销毁和重建。
此时activity会调用onConfigurationChanged方法

: onConfigurationChanged
A的启动模式为SingleTask:栈内复用模式时的生命周期

B为默认启动模式。

A跳转B,B返回A的生命周期和上面一样
区别在A跳转到B后,B在跳转到A的生命周期如下。是跳转不是返回

: ===== B onPause
: ===== A onNewIntent
: ===== A onRestart
: ===== A onStart
: ===== A onResume
: ===== B onStop
: ===== B onDestroy

可以看到,A的onNewIntent()方法被调用。同时B的onDestroy()方法被调用。B页面被销毁。

因为SingleTask为栈内服用模式,只要有Activity的实例位于栈中,那么再次启动该activity则不会重新创建新的实例,而是直接销毁位于该Activity栈上面的其他实例,使该activity位于栈顶。

A的启动模式为SingleTop:栈顶复用模式时的生命周期。

区别在于,如果A已经位于栈顶时,再跳转A时,A不会重新创建,会复用。A跳转A的生命周期如下:

: ===== A onPause
: ===== A onNewIntent
: ===== A onResume

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值