Activity的生命周期

 Activity的生命周期分析

这张图片是来自谷歌开发文档的图片

 

 

1.        onCreat(): 我们每次创建Activity时, 都会重写此方法,在这个方法里我们做一些初始化操作,比如:加载布局,初始化数据或者事件的绑定.

2.        onStart():  这个方法由不可见到可见被回调.但是此时不能获得焦点

3.        onResume():这个方法是在onStart()这个方法后调用.  此时可以与用户进行交互.  此时处在返回栈的栈顶.  并且处于运行状态.

4.        onPause():  这个方法一般用于启动一个新的Activity或者恢复一个Acitvity时调用.

                                 我们通常会在方法次方法中将一些CPU的资源释放掉,以及保存一些关键的数据.

                                这个方法里不能做一些耗时的工作的,会影响新的Activity的启动.

                                 这时暂停的状态. 此时不能获得焦点,但是依然可见.    例如: 此时弹出一个对话框,这个Activity 依然可见,但是不能获得焦点.

        

5.        onStop(): 此方法被调用, Activity由可见变为不可见. 此时没有焦点,也不可见.   这个方法与onPause的主要区就是: 弹出一个对话框, onPause会被调用.而onStop(),不会被调用.

6.        onDestory(): Activity销毁时,会被调用. 在这里我们可以释放一些资源.

7.        onRestar(): 这个方法是在活动停止状态变为运行的状态会被调用.  也就是说活动被重新启动了.

Activity的状态

从上面的生命周期可以看出Activity最多有4种状态.

1.        运行状态

          当一个Activity处于返回栈的栈顶时,就处于运行状态.  此时系统最不愿意回收,如果回收了,影响用户体验.

2.        暂停状态

          这个Activity不再处于栈顶,但是依然可见.就处于暂停的状态.

         例如:弹出一个对话框,此时Activity就处于这个暂停的状态.  依然可见,但是不能获得焦点.

3.        停止状态

        不在处于栈顶,此时也不可见.就进入了停止的状态.

        但是当内存不足时,此时的状态很容易被系统回收.

4.        销毁的状态

        当一个活动从返回栈中移除时,就变成了销毁的状态..

        系统最喜欢回收这种状态的Acitivity,从而保证系统内存的充足.

 

在Activity中除了onStart(),其他都是两两配对的.

1.      完整的生命周期

         从onCreat()到onDestpry().这之间经历的所有方法.就是一个完整的生命周期.

         我们可以在onCreat()中进行一些初始化的操作.然后在onDestory中进行一些释放内存的操作.

2.      可见的生命周期

         从onStart()到onStop()方法之所经历的.就是可见的生命周期.

         在这期间,Activity一直可见,但不一定能进行交互.这是我们可以在onStop中进行资源的释放,从而保证处于停止的状态的活动不会占用过多的内存.

3.      前台的生存期

         处于onResume()和onPause()方法之间所经历的就是前台的生存周期.

         Activity总是处于运行状态,与用户进行交互.  我们平时接触最多的就是在这个状态下.

 

1.      当我们第一次启动Activity时, 会回调:onCreat()—onStart()—onResume();

2.      当用户打开新的Activity时或者切换到桌面时,会回调:onPause()—onStop();

          如果此时新的Activity的主题是透明的颜色那么只回调onPause().  不会回调onStop();

3.       当用户再次回到原Activity时,此时会回调:onRestart—onStart—onResume();

4.      当用户按返回键时:  会回调onPause()—onStop—onDestory();

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值