android_关于Activity生命周期设计交互的几个问题

本文通过启动两个Activity的实际案例,深入探讨了Android中Activity生命周期方法的调用顺序,并针对两个具体问题进行了详细解答:为什么启动新Activity时当前Activity会先调用onPause方法;为什么onStop方法在新Activity的onResume之后调用。

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

以下是FirstActivity启动SecondActivity的log
FirstActivity  SecondActivity
FirstActivity #onCreat
FirstActivity #onStart
FirstActivity #onResume
FirstActivity #onPause
SecondActivity#onCreat
SecondActivity#onStart
SecondActivity#onResume
FirstActivity #onStop

在看了其他博客之后总结的两个问题:

问题1:为什么在FirstActivity启动另一个SecondActivity时,会先调用当前的FirstActivity#onPause方法呢?

举实际例子说明:FirstActivity是正在播放音乐的Activity,但是现在有号码拨入,所以会启动来电的SecondActivity,若是当前FirstActivity没有调用onPause方法去暂停音乐的话,那么来电SecondActivity已经显示了但是FirstActivity仍然播放音乐就显然不合理了。


问题2:为什么在当前FirstActivity启动另一个SecondActivity时,当前的FirstActivity#onStop方法为什么会在第二个SecondActivity#onResume之后才调用呢?
举实际例子说明:若是FirstActivity的onStop方法在SecondActivity#onCreate方法前调用,当启动的SecondActivity这个过程由于某种原因导致没有启动成功,那么回退到FirstActivity时就有可能黑屏,所以FirstActivity#onStop方法应该在SecondActivity成功启动后才去调用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值