您的位置:首页 > 其它

Activity的生命周期

2016-01-07 14:33 344 查看
activity启动的时候:onCreate ---> onStart ---> onResume 这个过程不用多说,大家都知道。

1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。

2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。

3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。

4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。

5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。

6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。

7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestroy方法,结束当前Activity。

七个方法中除了onRestart()方法,其他都是俩俩对应的,从而又可以将活动分为三种生存期

1.Activity的entire lifetime(全部的生命期)发生在

调用onCreate()和调用onDestory()之间。
在onCreate()方法中执行全局状态的建立(例如定义布局),在onDestroy()方法中释放所有保存的资源。

2.Activity的visible lifetime(可见的生命期)发生在
调用onStart()onStop()之间。
在这个期间,用户能在屏幕上看见Activity,和它进行交互。
系统在Activity的完整寿命中可能多次调用onStart()和onStop(),正如Activity交替地对用户可见或隐藏。

3Activity的foreground lifetime (前台的生命期)发生在
调用onResume()onPause()之间。
在这期间,Activity在屏幕上所有其他Activity的前面,有用户输入焦点。
一个Activity能频繁的在前台进入和出去之间转变。
如图

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/btn_pressed" android:state_pressed="true"></item>
<item android:drawable="@drawable/btn_normal"></item>
</selector>


View Code

现在来观察Activity的生命周期

当点击运行时



1.随后点击进入另一个Activity 先调用了onPause()系统准备调用另一个活动,过几秒调用了onStop的方法



在另一个Activity 重新返回第一个Activity时(finish下)



所以我们看下当我在一个Activity(one)来启动另一个Activity(other)随后finish otherActivity 来显示第一个Activity 然后在finish 第一个Activity的生命周期



2. 点击跳转按钮,由OneActivity跳转到Otherdialog:



由于SecondActivity是Dialog,所以MainActivity依然可见,所以只调用了它的onPause()方法。

当OneActivity重新获取焦点



所以它的生命周期为

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: