一般一个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。
Activity生命周期的通俗理解,布布扣,bubuko.com
原文:http://www.cnblogs.com/bin92/p/3704178.html