Android生命周期

什么是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个方法

  1. void onCreate ( Bundle savedinstanceState ) :初始化,仅仅被创建一次
  2. void onStart ( )
  3. void onRestart ( )
  4. void onResume ( )
  5. void onPause ( )
  6. void onStop ( )
  7. void onDestroy ( )

3个阶段

  1. 开始Activity:在这个阶段依次执行3个生命周期的方法,分别是onCreate、onStart、onResume
  2. Activity重新获得焦点:如果Activity重新获得焦点,会依次执行3个生命周期,分别是onRestart、onStart、onResume
  3. 关闭Activity:当Activity被关闭时,系统会依次执行3个生命周期方法, 分别是onPause、onStop、onDestory

生命周期中包含了两层循环:
onPause-----onResume-----onPause

onStart-----onRestart-----onResume-----onPause----onStop

可以将这两层循环看成整个Activity的生命周期的子生命周期

第一层循环称为焦点生命周期,第二层循环可以视为生命周期

即第一层循环在Activity焦点获得与失去的过程中循环,在这个过程中, Activity始终是可见的

第二层循环是Actibity可见和不可见的过程中循环

这个过程中伴随着Activity焦点的获得与失去,也就是说,Activity首先会被显示,然后会获得焦点,接着失去焦点,最后弹出其他的Activity

 

原文地址:https://www.cnblogs.com/ltw222/p/14367735.html