Activity生命周期注意事项

本文深入解析Android中Activity的生命周期,包括在不同场景下Activity状态的变化,如启动、暂停、停止和销毁的过程。特别关注透明主题对生命周期的影响,以及在内存不足或配置改变时如何保存和恢复实例状态。

1、在oneActivity上启懂twoActivity,如果twoActivity是透明主题,则oneActivity生命周期只会执行到onPause 不会执行onstop和onDestory。 

2、当系统认为一个Activity有可能被回收时(内存不足),会调用onSaveInStanceState(Bundle outState),(注意 是一个参数的,不是两个参数)当activity的系统配置发生改(切换横竖屏,),会调用onSaveInStanceState,也会执行 onresume onstrop ondestory。这个方法在onStop之前,可能在onReume之前也可能在之后,这个方法只在activity被异常终止时才调用,正常情况下不会调用。

3、activity重建后会调用onRestoreInstanceState,我们可以当activity销毁时在oonSaveInStanceState(Bundle outState)把数据存放在bundle中,作为参数传递个onRestoreInstanceState和onCreate。这样我们就可以在onRestoreInstanceState和onCreate中通过bundle是否为空来判断是否被重建,如果重建了就可以取出之前保存的数据恢复出来,这个方法在onstart之后。 

小拓展:保存和恢复view层次结构。每个view都有onSaveInStanceState和onRestoreInstanceState 首先activity意外终止时,activity会调用onSaveInStanceState去保存数据。然后activity会委托window去保存数据,接着window在委托它上面的顶级容器去保存数据。顶层容器是一个viewGroup 肯能是DecorView。最顶层容器在一一通知他的子view来保存数据。这个一中典型的委托思想。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值