如何理解Activity 的生命周期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何理解Activity 的生命周期相关的知识,希望对你有一定的参考价值。

Activity 生命周期是学习Activity的基础,这篇文章就想带大家深入了解这个基础。在Activity的生命周期中,系统会按类似于阶梯金字塔的顺序调用一组核心的生命周期方法。 也就是说,Activity生命周期的每个阶段就是金字塔上的一阶。 当系统创建新Activity实例时,每个回调方法会将Activity状态向顶端移动一阶。 金字塔的顶端是Activity在前台运行并且用户可以与其交互的时间点。

当用户开始离开Activity时,系统会调用其他方法在金字塔中将Activity状态下移,从而销毁Activity。 在有些情况下,Activity将只在金字塔中部分下移并等待(比如,当用户切换到其他应用时),Activity可从该点开始移回顶端(如果用户返回到该Activity),并在用户停止的位置继续。

有Activity会在图 1 所示不同状态之间过渡的几种情况。 但是,这些状态中只有三种可以是静态。 也就是说,Activity只能在三种状态之一下存在很长时间。

继续

在这种状态下,Activity处于前台,且用户可以与其交互。(有时也称为“运行”状态。)

暂停

在这种状态下,Activity被在前台中处于半透明状态或者未覆盖整个屏幕的另一个Activity—部分阻挡。 暂停的Activity不会接收用户输入并且无法执行任何代码。

停止

在这种状态下,Activity被完全隐藏并且对用户不可见;它被视为处于后台。 停止时,Activity实例及其诸如成员变量等所有状态信息将保留,但它无法执行任何代码。

其他状态(“创建”和“开始”)是瞬态,系统会通过调用下一个生命周期回调方法从这些状态快速移到下一个状态。 也就是说,在系统调用 onCreate() 之后,它会快速调用 onStart(),紧接着快速调用 onResume()。

指定启动器所使用的activity

android在启动的时候,会调用AndroidManifest.xml中定义的主activity作为启动界面,其定义方式如下:


<?xml version="1.0" encoding="utf-8"?>  <manifest xmlns:android="http://schemas.android.com/apk/res/android";  

    package="com.xiao.residue.hw">

 

    <application        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:supportsRtl="true"

        android:theme="@style/AppTheme"

        >

        <activity android:name=".MainActivity">

            <!--定义此activity为启动时候使用的activity-->

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        <activity android:name=".anotherActivity"></activity>

    </application>

</manifest>

 

 

 

文章来自:晓残的博客

以上是关于如何理解Activity 的生命周期的主要内容,如果未能解决你的问题,请参考以下文章

Activity生命周期(深入理解)

Activity生命周期的理解

Activity生命周期理解

Android开发 Activity生命周期详解

AndroidActivity生命周期研究

Activity的生命周期