Activity生命周期的剖析篇一

Android开发无可避免的要对生命周期有一个完整的掌握,以前没时间整理,正好趁这过年无聊之际,整理一篇Activity的完整生命周期。

首先,先来了解一副图解
Created with Raphaël 2.1.2 Activity is launched onCreate() onAttachFragment() onStart() onRestoreInstanceState() onPostCreate() onResume onPostResume() onAttachedToWindow() onCreateOptionsMenu() onPrepareOptionsMenu() Activity is running onPause() onSaveInstanceState() onStop() onRestart() onDestroy() Activity is shut down yes no
通过以上流程图,我们大概了解了Activity的基本所有周期的调用方法,现在,用一个Activity跳转的小实例来剖析Activity之间的跳转时方法调用顺序。
FirstActivity和SecondActivity的创建并带上基本的调用方法,用log输出来观察方法何时被调用的,情况如下:
1)在打开FirstActivity时依次执行onCreate()->onStart()->onResume(),
FirstActivity入栈;
2)再点击FirstActivity跳转到SecondActivity
此时先执行FirstActivity的onPause()方法,
再执行SecondActivity中的onCreate()->onStart()->onResume(),
SecondActivity入栈,
最后才会执行FirstActivity的onStop()方法,此时SecondActivity在栈顶;
3)而在Android手机上少不了的按键——返回键和home键
a、当按下返回键时:

先执行SecondActivity的onPause()方法,再执行FirstActivity的onRestart()->onStart()->onResume(),此时MainAcitivity回到栈顶;
当一切准备就绪后,SecondActivity执行onStop()->onDestroy(),
此时SecondActivity()出栈。

b、当按下home键时:

当按下home键时就已表示程序推入到后台了,此时会执行Activity的onPause()->onStop(),而不会执行onDestroy(),当用户再次从后台打开该程序后执行onRestart()->onStart()->onResume()恢复。

小结:凡应用退入到后台或从下一个界面返回上一层界面时(等同于按下返回键效果)都输入重新构建UI,都会按照顺序执行方法onRestart()->onStart()->onResume()来恢复界面;凡新开启的界面都会按照顺序执行方法onCreate()->onStart()->onResume()。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值