Activity的生命周期

Activity是android的四大组件之一,其重要性不言而喻,下面我们就简单的介绍一下它的活动状态和生命周期:

一、Activity的形态

Active/Running:

    该Activity处于活动状态,位于Activity的栈顶,是可见状态,可以与用户进行交互;

paused:

    当Activity失去焦点时,或者新的Activity处于栈顶顶替了该Activity,或者被一个透明的Activity放置在了栈顶时,该Activity就会处于Pause的状态。但要明白的时,此时的Activity只是失去了与用户交互的能力,并没有失去保留在Activity的数据和所有的状态信息。但当系统内存紧张时,也有可能被系统强制回收;

Stopped:

    当一个Activity被另外的Activity完全覆盖时,被覆盖的Activity就会进入Stopped状态,此时的它在屏幕不可见,更不可能与用户进行交互,但与Pasued状态相同,成员变量以及其状态信息依旧保留;

Killed:

    当Activity被系统回收时,就会进入该状态,所有信息都会被回收;

 

    当我们实际应用中,Activity都将会在上述四个形态中来回跳转,具体应用还要因时而异;

 

二、Activity的生命周期

下面我们就来讲讲Activity的生命周期:

onCreate:

    在Activity被创建的时回调该方法,它是Activity的第一个方法,一般的初始化工作都在这里进行;


OnStart:

    Activity正在启动时回调该方法,此时的Activity处于可见状态,只是还没显示出来,无法与用户交互;

 

OnResume:

    回调此方法时,Activity已经可见,能与用户发生交互;

 

OnPause:

    此方法回调时Activity将处于停止状态(Paused形态),一般情况下下一步将会进行回调OnStop的生命周期,但也有例外;

 

OnStop:

    表示Activity已经被覆盖,进入了Stopped形态,此时的Activity不可见,在后台运行;

OnRestart:

    表示Activity正在重新启动,一般是OnStop生命周期之后,随后还会执行OnStart、OnResume生命周期,使Activity再次由不可见变为可见;

OnDestroy:

    此时的Activity被销毁,系统进行回收,是生命周期的最后一个方法。一般在该方法中做一些回收和释放资源的工作;

 

    以上就是Activity的正常生命周期的执行,但除此之外还有异常情况下的生命周期执行顺序

        比如:

       当前Activity处于Active形态时,用户进行了横竖屏的切换,此时的Activity会执行Paused,Stopped,Killed,Active的形态。因为Activity默认回调了OnSaveInstanceState()和OnRetoreInstanceState()方法。

    OnSaveInstanceState()方法会在OnStop()之前执行,与OnPaused()没有顺序关系,可能在它之前也可能是之后。该方法会在Activity发生异常情况时调用,用于储存当前页面的所有数据以及状态。

    OnRetoreInstanceState()该方法会在Activity发生异常重新启动时在OnCreate()之前执行,用于取出在 OnSaveInstanceState()储存的数据,并在下一步初始化页面时将数据及状态进行相应;

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值