欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

android之activity的生命周期

程序员文章站 2024-03-25 18:25:04
...

android developers 网上的activity的生命周期图:
android之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接口对应。

相关标签: android