Activity中的回调机制

Activity的生命周期:
这里写图片描述

  1. onCreate():

    一般人认为的activity的入口(然而不是),当activity第一次created之后会回调这个方法。如果把activity比作房子的话,回调这个方法之前activity还只是一个毛坯房,我们要在这个方法里边对它进行装修,这样它随后显示的效果就跟我们所预想的一样了。

  2. onstart() :

    这个时候我们可以看到activity了。

  3. onResume() :

    这个时候我们可以跟activity进行交互了。

  4. onPause() :

    这个时候我们还是能看到activity,但是不能进行交互了。举个栗子,假设我们当前的activity为A,有一个启动activity
    B的意图,这个时候A会回调onPause(),当A的onPause()回调完成之后,B开始onCreate()->onStart()->onResume()…完了之后B就处于可见可交互的状态了。那么A呢?如果此时A看不见了,A就会回调onStop()方法;另一种情况是此时A还是部分可见的(比如Activity
    B的主题是@android:style/Theme.Dialog),A就不会回调onStop();
    从上面的分析可以知道,onPause()方法里面不允许做耗时的操作,不然B等了半天都启动不了。

    有一点需要注意的是,不是说A处于部分可见但是不可交互的状态就一定会回调onPause()的,不信你show一个Dialog,show一个DialogFragment,或者show一个设置焦点为true的PopupWindow试试看。

  5. onStop():这个时候activity已经一丁点儿都看不到了。

  6. onDestroy():
    activity的临终遗言就在这里面写了,因为回调完它就被摧毁了。activity被摧毁有两种情况,一是someone调用了finish()方法,二是系统要节省内存空间而临时干掉它.
    如何区分呢?官方文档里面说的是通过isFinishing()这个方法来判断。
    如果是someone调用了finish()方法,isFinishing()毫无疑问是return
    true的。如果是系统为了节省空间,isFinishing()=false?

  7. onRestart():
    activity准备重新出来见人了。典型的栗子是启动一个能完全遮挡住前一个activity的新的activity之后,再按back键返回到前一个actvity,这样前一个activity就会onRestart()->onStart()->onResume();另一个栗子是按下电源键,熄灭屏幕,再打开,点亮屏幕的时候;还有一个是按下home键,再从最近任务栏或者点击应用图标重新进去的时候….

http://blog.csdn.net/android_tutor/article/details/5772285
这是在Activity中使用log打印对应的进程信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值