Activity生命周期函数调用顺序——从A跳转至B后,在B中按下返回键

本文介绍了在Android中,从ActivityA启动ActivityB然后在B中按下返回键的生命周期函数调用顺序。当启动B时,A的onPause()被调用,接着B的onCreate()、onStart()和onResume()依次执行。按下返回键时,B的onPause()、A的onRestart()、onStart()和onResume()以及B的onStop()和onDestroy()被调用。值得注意的是,onSaveInstanceState()仅在启动B时调用,而不会在按返回键时调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前面试被问过这样一个问题

ActivityA中点击按钮跳转至ActivityB,之后在ActivityB界面中按下Back(返回)键,描述整个过程的生命周期函数调用情况。

面试完之后就自己写了个小Demo来详细了解一下。项目里有两个Activity:MainActivity和ActivityTwo;MainActivity中有一个按钮可跳转至ActivityTwo。

以下是启动应用后的Log信息:
在这里插入图片描述
从ActivityA 启动 ActivityB的生命周期:
A.onCreate —> A.onStart —> A.onResume —>A.onPause —>B.onCreate —> B.onStart —> B.onResume—> A.onSaveInstanceState —> A.onStop

可能跟我们料想的结果不太一样,我之前也以为是先将A销毁后再启动B,结果却是在A.onPause执行后就开始创建并初始化B了。具体的启动流程需要看源码才能知晓,这里不做说明。
在这里插入图片描述
按下Back键:
B.onPause —>A.onRestart—>A.onStart —> A.onResume -->B.onStop ---- >B.onDestroy

附上一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值