什么是Activity?
简单的说,Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面,在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,如下设置:
<activity 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重新恢复
Activity生命周期的7个方法和3个阶段
7个方法
- void onCreate ( Bundle savedinstanceState ) :初始化,仅仅被创建一次
- void onStart ( )
- void onRestart ( )
- void onResume ( )
- void onPause ( )
- void onStop ( )
- void onDestroy ( )
3个阶段
- 开始Activity:在这个阶段依次执行3个生命周期的方法,分别是onCreate、onStart、onResume
- Activity重新获得焦点:如果Activity重新获得焦点,会依次执行3个生命周期,分别是onRestart、onStart、onResume
- 关闭Activity:当Activity被关闭时,系统会依次执行3个生命周期方法, 分别是onPause、onStop、onDestory
生命周期中包含了两层循环:
onPause-----onResume-----onPause
onStart-----onRestart-----onResume-----onPause----onStop
可以将这两层循环看成整个Activity的生命周期的子生命周期
第一层循环称为焦点生命周期,第二层循环可以视为生命周期
即第一层循环在Activity焦点获得与失去的过程中循环,在这个过程中, Activity始终是可见的
第二层循环是Actibity可见和不可见的过程中循环
这个过程中伴随着Activity焦点的获得与失去,也就是说,Activity首先会被显示,然后会获得焦点,接着失去焦点,最后弹出其他的Activity