Android Activity生命周期详解

概述

Activity的生命周期一直是学习Android客户端必须掌握的知识之一,包括具体可以重写哪七个方法、Activity跳转时调用哪些方法、顺序是什么样的、以及一些特殊的调用情况等,所以在这篇文章中总结一下。

七个方法

Activity生命周期
如上图,Activity的七个生命周期如上,他们的应用场景如下:
(1)onCreate():在Activity首次创建时调用。
(2)onStart():在Activity即将对用户可见时调用。
(3)onResume():在Activity即将可交互时调用。
(4)onPause():在Activity即将离开用户可视界面时调用。
(5)onStop():在Activity对用户不再可见时调用。
(6)onRestart():当用户重新进入某Activity时调用,之后会调用onStart()方法。
(7)onDestory():在用户销毁Activity时调用(如退出App)。一些数据库连接的断开、监听器的销毁可以通过重写这个方法实现。

Activity跳转时的调用

假设一个应用场景:用户点击AActivity中的跳转按钮,跳转到BActivity中,且BActivity为首次创建。那么其跳转流程如下:
跳转流程
首先会调用AActivity的onPause()方法,因为此时AActivity即将不可见;然后依次调用BActivity的onCreate()、onStart()、onResume()方法;然后调用AActivity的onStop()方法,因为此时AActivity已经对用户不可见。要注意在一些特殊情况中,跳转并不会调用AActivity的onStop()方法,这将在之后提到。

按返回键时的调用

仍然按上述场景。从BActivity按返回键返回AActivity,此时调用流程如下:
BackPressed
这个逻辑与Activity跳转时差不多,在此不再赘述。

一些特殊情况

(1)调用onRestart()方法的场景:常见的有两个,即当按下主屏键(Home键)后重新返回Activity;或者熄屏后重新亮屏。
(2)跳转Activity时不会调用onStop()方法的场景:Activity的主题是Dialog或Translucent时。这个我个人的理解逻辑是onStop()方法是在“对用户不可见”时才调用的,而“Dialog”是“弹窗”主题,“Translucent”是“透明”主题,都不是“不可见”的情况,所以不会调用onStop()方法。

————————————————————
本文同步更新于我的个人公众号,微信搜索“茶迁”或扫描下面二维码关注,后台回复“Activity的生命周期”即可获得本文推送。欢迎关注~
茶迁

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

保温杯拖把风扇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值