android生命周期()
1.什么是Activity:
简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面.在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,
如下设置:
<activity
android:label="@string/app_name"
android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category
android:name="android.intent.category.LAUNCHER"
</intent-filter>
</activity>
当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作.
当启动其他的Activity时,当前的这个Activity将会停止,新的Activity将会压入栈中,同时获取用户焦点,这时就可在这个Activity上操作了.
我们都知道栈是先进后出的原则,那么当用户按Back键时,当前的这个Activity销毁,前一个Activity重新恢复.
2.Activity生命周期:
Activity经历如下3个阶段:
开始Activity: 在这个阶段依次执行3个生命周期的方法,分别是onCreate,onStart, onResume方法.
Activity重新获得焦点: 如果Activity重新获得焦点,会依次执行3个生命周期,分别是onRestart, onStart和onResume.
关闭Activity: 当Activity被关闭时系统会依次执行3个生命周期方法,分别是: onPause, onStop和 onDestory.
从以上的Activity的生命周期不难看出,改图包含了两层循环,
第一层循环是: onPause->onResume->onPause
第二层循环是: onRestart->onStart->onResume->onPause->onStop
我们可以将这两层的循环看成整个Activity的生命周期的子生命周期
第一层循环称为焦点生命周期,第二层循环可以视为生命周期
也就是说,第一层循环在Activity焦点获得与失去的过程中循环,在这个过程中,Activity始终是可见的,第二层循环是Activity可见与不可见的过程中循环
这个过程中伴随着Activity焦点的获得与失去,也就是说,Activity首先会被显示,然后会获得焦点,接着失去焦点,最后弹出其他的Activity
Activity具体的生命周期如下:
整体的生命周期: onCreate->...->onDestory
可视生命周期: onStart->...->onStop
焦点生命周期: onResume->....->onPause