Activity生命周期总结

          Activity生命周期中的回调比任何一种页面(如jsp,winfrom等)都多。在Activity进入用户可以交互阶段实际上已经经历了onCreate()onStart()onResume()的回调。

       先来看android官方文档中对于Activity生命周期各状态回调函数的流程。

                  

                                                          Activity的生命周期及回调方法

           此流程图需要特别注意的是两个”The activity comes to the foreground”标签,其中onResume()与onPause()之间的标签表示另外一个activity在最前面,但是该activity仍然可见,如最前面的activity的Them配置为android:theme="@android:style/Theme.Dialog"的情况。onStart()与onStop()之间的标签表示该activity完全被最前面的activity覆盖。

       根据Activity的可见性重新画activity的生命周期及回调如下。

              

        现通过程序验证此过程。

       如下图是MainActivity,其中的所有回调函数都已打印日志,此程序有两个菜单选项,菜单one对应的OneActivity的Theme为默认值,在选择one时OneActivity将完全覆盖MainActivity,two是一个Theme配置为android:theme="@ android:style/Theme.Dialog"的activity,选择two时,TwoActivity在最上面,但是MainActivity仍可见。

Logcat打印日志如下:

选择two,弹出dialogactivityMainActivity仍然可见

此时打印的日志如下

可以看到此时调用的是onPause()方法,失去焦点。

关闭two,可以看到调用了onResume()方法,得到焦点。处于onResume()onPause()间的”The activitycomes to the foreground”

选择one,弹出OneActivity,完全覆盖MainActivity

打印的日志如下

可以看出此时属于onStart()onStop()间的”The activitycomes to the foreground”

退出OneActivity,继续显示MainActivity,调用MainActivity的onReStart()、onStart()方法。

退出程序,调用onDestroy()方法.

 源码连接

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值