最近在友盟上经常看到getActivity()为null的情况,今天来把它彻底解决掉。
这种问题应该主要有两方面原因:
1, 如果系统内存不足、切换横竖屏、app长时间在后台运行,Activity都可能会被系统回收然后重建,但Fragment并不会随着Activity的回收而被回收,创建的所有Fragment会被保存到Bundle里面,从而导致Fragment丢失对应的Activity。
解决方案:让fragment跟着activity一起销毁一起创建,activity中不保存fragment的快照
@Override