首页 > 代码库 > Activity生命周期的通俗理解

Activity生命周期的通俗理解

     一般一个Activity有三种状态:

    1.在屏幕上是可见的且可操作的,他是活跃或运行状态,负责响应用户操作。

    2.失去焦点但仍然可见时,他处于暂停状态。也就是说未被完全遮蔽,所以该Activity仍对用户可见,但是当系统处于繁忙的时候下,有肯会杀死该Activity。

    3.完全被另一个Activity覆盖时处于停止状态。也有可能被杀死。

 

 

   Activity生命周期中各方法的调用情况        

    1.onCreate(Bundle savedStatus):第一次创建时调用,只调用一次。      

    2.onStart():变得可见时调用该函数 。

    3.onResume():开始准备与用户交互时调用,接受用户输入。

    4.onPause():当系统即将启动另外一个Activity之前调用该方法。 

    5.onStop():变得不可见时调用。

    6.onDestory():被销毁之前调用。 

    7.onRestart():再次被启动之前调用。 

    很多情况下重载onPause()用来提交数据变化或准备停止与用户交互。

     

  Activity的可视生命周期  自onStart()调用开始直到相应的onStop()调用。在此期间,用户可以在屏幕上看到此Activity,可以随着应用程序是否为用户可见而被多次调用。

    Activity的前台生命周期自onResume()调用起,至相应的onPause()调用为止。在此期间,Activity位于前台最上面并与用户进行交互。

    总而言之:

    1.Activity从创建到进入运行态所触发的事件onCreate-->onStart-->onResume

    2.从运行态到停止态所触发的事件onPause-->onStop

    3.从停止态到运行态所触发的事件onRestart-->onStart-->onResume

    4.从运行态到暂停态所触发的事件onPause

    5.从暂停态到运行态所触发的事件onResume

  

     

     下面是网上一位大牛的通俗比喻,很容易理解

我们把Activity比作一本书,我们要看书,首先从书架上取出书(onCreate),然后放到桌上(onStart)(变得可见),接着打开书(onResume)(获得焦点,变得可编辑),这样我们就可以看书并可以在书本上写字了。

如果这时候我们要启动另一个Activity,也就是要看另一本书,首先我们放下手中的笔或者说合上书(onPause),然后从书架上拿下另一本书(书2:onCreate),然后把书本2放到桌上并打开(书2:onStart、onResume)。

如果书本1被书本2完全盖住了,即不可见了,就调用书本1的onStop;而如果书本2较小,没有完全盖住书本1,则不会调用。

我们还可以把书本1放回书架上,即onDestroy。