Activity的生命周期

这篇文章主要介绍的是Activity的生命周期

作为Android的四大组件之一,Activity是与开发者最常打交道的组件,那么了解它的生命周期就显得十分有必要了。

先看下整体的生命周期流程图


从图中我们能清晰的看到Activity常用的生命周期有7个,下面对它们进行一一介绍。

7个生命周期分析

(1)onCreate

Activity正在被创建,在这个方法里一般作初始化工作,如加载界面布局资源,数据等。

(2)onRestart

Activity正在重新启动,一般是在Activity从不可见重新变为可见的过程,onRestart()方法会被调用

(3)onStart

Activity正在启动,这时Activity已经创建且可见了,但仍处于后台,此时并未能与用户进行交互。

(4)onResume

表示Activity出现在前台且能与用户进行交互了。

(5)onPause

表示Activity正在停止,此时仍处于前台,只是不能与用户进行交互了。

拓展:官方文档建议可使用该方法来对数据进行存储,如:SharedPreferences,但是不能进行比较耗时的动作。

这里涉及到一个例子:当在MainActivity启动SecondActivity时,MainActivity的生命周期与SecondActivity会如何进行。

结果是MainActivity先进行了onPause方法,SecondActivity再执行onCreate->onStart->onResume,接着MainActivity执行onStop方法。

所以可以验证,为什么在onPause方法中不能进行耗时操作,因为这会影响到新的Activity显示。

(6)onStop

表示Activity正在停止,可在该Activity进行一些回收操作,但不能太耗时。

(7)onDestroy

表示Activity正在销毁,我们同样可在这个方法中进行一些回收操作以及资源释放。


接下来,我们将以上的7个生命周期分类来观察对比

(1)onStart和onStop

这一对生命周期是对于Activity是否可见的角度来回调的

(1)onResume和onPause

这一对生命周期是对于Activity是否能够与用户进行交互(即是否位于前台)角度来回调的

好了,有了以上的了解,我们可以结合一些例子来看看生命周期的流程。

(1)当Activity第一次启动时:onCreate->onStart->onResume

(2)在当前的MainActivity启动SecondActivity时,MainActivity会回调:onPause->onStop方法,但是如果SecondActivity是透明主题,即MainActivity对于用户来讲仍然可见的情况下,MainActivity不会调用onStop的方法

(3)在SecondActivity回到MainActivity时,会回调:onRestart->onStart->onResume方法。


本文是在阅读《Android开发艺术探索》后自己的学习笔记分享,

如有个人的书写错误或理解错误,希望读者能指出,十分感谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值