activity跳转时的生命周期函数调用

本文通过两个简单Activity的跳转,详细记录并解析了Android中Activity生命周期函数的调用顺序。包括从FirstActivity到SecondActivity及返回过程中的各生命周期方法触发时机。

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

 上图是大家再熟悉不过的正常情况下的activity生命周期各个阶段中对应函数的调用顺序。那么,当涉及到两个activity跳转时,生命周期函数的调用又是按照怎样的顺序进行依次调用的呢?本文通过写两个简单的activity(FirstActivity和SecondActivity),执行从前者到后者的跳转,然后再执行返回,打印出两个activity生命周期函数的调用顺序。

1)FirstActivity---->SecondActivity

 01-23 15:32:04.799 22126-22126/com.example.lenovo.testdemo I/FirstActivity: ---> onCreate
 01-23 15:32:04.805 22126-22126/com.example.lenovo.testdemo I/FirstActivity: ---> onStart
 01-23 15:32:04.808 22126-22126/com.example.lenovo.testdemo I/FirstActivity: ---> onResume
 01-23 15:39:04.733 22126-22126/com.example.lenovo.testdemo I/FirstActivity: ---> onPause
 01-23 15:39:04.763 22126-22126/com.example.lenovo.testdemo I/SecondActivity: ---> onCreate
 01-23 15:39:04.764 22126-22126/com.example.lenovo.testdemo I/SecondActivity: ---> onStart
 01-23 15:39:04.766 22126-22126/com.example.lenovo.testdemo I/SecondActivity: ---> onResume
 01-23 15:39:05.264 22126-22126/com.example.lenovo.testdemo I/FirstActivity: ---> onStop

 由此可见,当执行activity跳转时。正常情况下,必须前一个activity调用onResume函数后,后面的activity才会执行生成。而后一个activity调用onResume函数时,前一个activity的onStop函数才开始调用。这就说明onResume函数的维持的时间比较短暂,所以我们尽量不要在这个函数里面做一些重的、耗时比较多的任务。onStop函数维持时间相对长一些,我们可以在这里面做一些相对来说任务重一点的工作,但是耗时也不可过长。

2)SecondActivity---->FirstActivity(返回时Log信息如下)

01-23 15:39:31.928 22126-22126/com.example.lenovo.testdemo I/SecondActivity: ---> 按下返回键
 01-23 15:39:31.928 22126-22126/com.example.lenovo.testdemo I/SecondActivity: ---> onPause
 01-23 15:39:31.947 22126-22126/com.example.lenovo.testdemo I/FirstActivity: ---> onRestart
 01-23 15:39:31.947 22126-22126/com.example.lenovo.testdemo I/FirstActivity: ---> onStart
 01-23 15:39:31.948 22126-22126/com.example.lenovo.testdemo I/FirstActivity: ---> onResume
 01-23 15:39:32.423 22126-22126/com.example.lenovo.testdemo I/SecondActivity: ---> onStop
 01-23 15:39:32.424 22126-22126/com.example.lenovo.testdemo I/SecondActivity: ---> onDestroy

从Log信息上,我们可以看到只有当前activity函数onPause方法调用之后,次栈顶的activity才会开始执行返回的相关操作。并且,需要返回的函数的onResume方法调用后,前者的stop方法才开始调用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值