Activity的生命周期

作者: LiChengZe_Blog | 来源:发表于2019-05-26 10:38 被阅读19次

     之前在CSDN写过关于生命周期的文章 但是最近在网上看到一些关于生命周期的文章 觉得自己写的有点过于水了 于是就觉得再来写一篇关于Activity生命周期的文章

    先来说一下生命周期的四个状态:

    Running :运行状态:当Activity位于任务栈的栈顶时,则Activity处于运行状态。

    Paused:暂停状态:当Activity不再处于栈顶位置,但依然可见时,则Activity就进入了暂停状态。

    Stopped:停止状态:当Activity不再处于栈顶位置,并且完全不可见的时候,这时Activity就进入了停止状态。

    Destroyed:销毁状态:当Activity从任务栈中移除后就变成了销毁状态。Activity的生命周期回调:

    关于四个状态所在的生命周期:

    1.onCreate():表示Activity正在被创建,这是Activity生命周期的第一个方法。可以做一些初始化的工作(加载布局资源、初始化所需要的数据等),但是不要做耗时的工作。

    2.onStart():Activity在屏幕上由不可见变为可见的时候该方法被调用。这时界面是不可交互的。

    3.onResume():表明Activity已经创建完成,并且可以开始活动了,这个时候用户已经可以看到界面了,并且即将与用户交互。

    4.onPause():在Activity处于可见但不可见交互时候该方法被调用。可以在这个方法中将一些消耗CPU的资源释放掉,以及保存活动状态。

    5.onStop():表示Activity即将停止,可以做一些稍微重量级的回收工作,同样也不能太耗时。

    6.onRestart():表示Activity正在重新启动。一般情况下,在Activity从不可见重新变为可见的状态时onRestart就会被调用。这种情形通常是由于用户的行为所导致的,比如用户按下Home键切换到桌面或者打开了一个新的Activity(这时当前Activity会暂停,也就是onPause和onStop被执行),接着用户又回到了这个Activity,就会调用onRestart()。

    7.onDestroy():表示Activity即将被销毁,这是Activity生命周期的最后一个回调,可以做一些回收工作和资源释放。

    以上的七个方法除了onRestart()之外,其他的六个方法分别相互对应:

    onCreate()和onDestroy()两个方法是对应的,onCreate()方法中进行各种初始化操作,在onDestroy()方法中释放内存等操作。

    onStart()和 onStop()两个方法是对应的,在这两个方法之间Activity对于用户来说总是可见的。我们可以通过这两个方法合理的管理对用户可见的资源,比如在onStart()方法中对资源的加载,在onStop()方法中保存处于停止状态的Activity。

    onResume()和onPause()两个方法是对应的,在两个方法之间活动处于运行状态的并且可以和用户进行交互。

    各种情况下执行生命周期的情况:

    1.当启动OneActivity执行生命周期的情况:第一次启动的时候,会依次执行onCreate()–>onStart()–>onResume()

    2.关闭OneActivity时情况:关闭OneActivity,依次执行onPause()–>onStop()–>onDestroy()

    3.在OneActivity界面中按home键,然后在进入OneActivity时执行生命周期情况:onPause()–>onStop() –>onRestart()–>onStart()–>onResume()从OneActivity

    4.启动TwoActivity执行情况:OneActivity的onPause()–>然后执行TwoActivity的onCreate()–>onStart()–>onResume()–>最后再执行OneActivity的onStop()

    5.从TwoActivity中返回到OneActivity时执行情况:执行TwoActivity的onPause()–>然后执行OneActivity的onRestart()–>onStart()–>onResume()–>再执行TwoActivity的onStop()–>onDestroy()

    6.横竖屏切换的情况:onSaveInstance()–>onPause() —> onStop()–>onDestroy()–>onCreate()–>onStart()–>onRestoreInstance()–>onResume()

    相关文章

      网友评论

        本文标题:Activity的生命周期

        本文链接:https://www.haomeiwen.com/subject/aalxtctx.html