Android Fragment注意点

持续更新中…

Can not perform this action after onSaveInstanceState

解决方案:
不能在onSaveInstanceState之后的生命周期里面commit fragment
不要在子线程commit fragment 已经走完onSaveInstanceState

getActivity() == null

引起原因:
onDetach 之后,调用了getActivity()
解决方案:
在onAttach() 里赋值,使用mActivity代替getActivity(),有内存泄露风险,但是在异步任务没停止的情况下,本身可能就已经泄露,相比Crash,这种做法相对“安全”些。

fragment 重叠

屏幕旋转 activity 生命周期
竖屏 -》 横屏 1
横屏 -》 竖屏 2
android:configChanges=“orientation”
sdk > 23 :
走 onConfigurationChanged
sdk < 23 :?

引起原因:
onCreate add fragment
onDestroy
屏幕旋转 onCreate 又会执行 又会重新add一次 fragment (系统自动恢复了一个 )
内存重启: fragment 重叠 ( 接了个电话,系统内存不足,杀掉了你的activity )
打开手机上的“开发者选项”中的“不保留活动”选项,模拟内存重启
解决方案:
1. onSaveInstanceState activity失去自动存储的功能 super
2. if(savedInstanceState == null){add fragment }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值