android之activity的生命周期
android developers 网上的activity的生命周期图:
1、activity启动流程:
onCreate ---> onStart ---> onResume。
1)onCreate状态触发
activity创建时触发onCreate接口。
2)onStart状态触发
activity界面显示出来时调用onStart接口,用户可见,包含不完全显示情况,即有另一个activity在它上面,但没有完全覆盖住,用户可以看到部分activity但不能与之交互。onStart()通常就是onStop()(也就是用户按下了home键,activity变为后台后),之后用户再切换回这个activity就会调用onRestart()而后调用onStart()。
3)onResume状态触发
当activity能够与用户交互时调用onResume接口,用户可以获取activity的焦点。onResume()是onPause()(通常是当前的acitivty被暂停了,比如被另一个透明或者Dialog样式的Activity覆盖了),之后dialog取消,activity回到可交互状态,调用onResume()。
2、activity停止流程
onPause ---> onStop ---> onDestroy
1) onPause状态触发
通过上图的我们可以看出activity从running状态跳转到onPause状态的原因是:Another activity comes into the foreground,也就是说有另外一个actvity被启动并运行了。比如说当前MainActivity通过startActivity启动了SecondActivity(SecondActivity未全部挡住MainActivity),那么SecondActivity就在ui视图的最顶层了,而MainActivity不再是最顶层的activity了,此时就会onPause了,此时我们依稀还能看到MainActivity,只是MainActivity已经在其他activity之后了。与onResume接口对应。
2)onStop状态触发
当MainActivity完全被SecondActivity挡住,完全看不见的时候,此时MainActivity就会onStop了。我们看看上图从onPause到onStop的原因是:the activity is no longer visiable,也就是说此时MainActivity完全不可见了,比如当按下home键的时候,当前activity就会处于onStop的状态。与onStart接口对应。
3)onPause和onStop状态区别
从actvitiy的生命周期图中,我们可以看出activity是可以停留在onPause和onStop这两个状态上的,并且可以相应的恢复。那么何时停留在onPause,何时停留在onStop呢?
当MainActivity被挡住不再在最顶端但仍可以看到时,就是处于onPause状态,此时恢复MainActivity为最顶端时会调用OnResume接口;若MainActivity被挡住完全看不见时,就是处于onStop状态,此时恢复显示MainActivity时会调用OnRestart()接口,接着调用onStart接口进行恢复。
4)onDestroy状态触发
activity被销毁时调用,在activity中调用finish接口时会触发onDestroy接口完全退出activity。与onCreate接口对应。
上一篇: 如何优雅的批量输出psmatch2结果
下一篇: stata字符串类型转数值日期方法