Android应用之横竖屏切换时生命周期 onsaveinstancestate

本文探讨Android应用在横竖屏切换时如何触发onsaveInstanceState方法,通过实例展示不同切换场景下Activity的生命周期变化。实验表明onsaveInstanceState通常在onPause之后调用,这一现象有待进一步验证。同时,文章提到了Activity打开顺序中的生命周期执行顺序,建议避免在onPause中进行耗时操作,以免影响用户体验。

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

       Android设备在横竖屏切换时,会调用OnsavedInstanceState方法,我们来看看其生命周期的调用过程。

写了个简单例子,通过log打印出生命周期的调用过程。不多说,上图大家一看就明白。


下图是正常打开一个Activity的生命周期调用过程。


下面是打开一个Activity然后由竖屏切换到横屏的生命周期调用过程。

下面是打开一个Activity然后由竖屏切换到横屏再切回竖屏的生命周期调用过程。


       在书上看到大神说,onsaveInstancestate方法在 onstop之前调用,和onpause没有既定的时序关系,有可能在onpause之前,也可能在onpause之后,但是我测试了几次好像都是在onpause之后,这点还有待验证。


       这里再说一个关于生命周期的知识点,最近看书才知道的。

已经打开的Activity A然后再打开另外一个Activity B。两个Activity'的生命周期是怎么执行的呢?

        首先执行的是Activity A的onPause()方法,然后执行Activity B的onCreate(),onStart(),onResume(),然后再执行Activity A的onStop()方法。

大家可以打印log看下效果。这个执行顺序也提醒我们不要在onPause()方法中做太耗时的操作,有需要尽量放在onStop中,这样就不会影响新的Activity的顺利打开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值