Android getActivity()为空的问题解决办法
在开发项目中有时会碰到getActivity函数为空的情况, 导致apk空指针崩溃问题, 看代码逻辑没有明显的原因。
如果看Activity.Java、FragmentActivity.java的源码就可以找到原因。 当activity实例在后台时, 系统在回收资源时很可能回收掉Activity, 并在onSaveInstanceState函数里保存fragment的状态, 再次打开该Activity时, 在onCreate方法里取出bundle里的fragment状态, 但这时fragment对应的Activity早就不在了, 所以getActivity为空。
摘自FragmentActivity.java:
protected void onCreate(Bundle savedInstanceState) { ....... if (savedInstanceState != null) { Parcelable p = savedInstanceState.getParcelable(FRAGMENTS_TAG); mFragments.restoreAllState(p, nc != null ? nc.fragments : null); } mFragments.dispatchCreate(); } protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); Parcelable p = mFragments.saveAllState(); if (p != null) { outState.putParcelable(FRAGMENTS_TAG, p); } }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755
相关文章
发现更多好内容猜你喜欢
AI推送时光机Android getActivity()为空的问题解决办法
后端开发2023-05-30
Android setTag方法的key问题解决办法
后端开发2022-06-06
Android setButtonDrawable()的兼容问题解决办法
后端开发2022-06-06
Android中findViewById返回为空null的快速解决办法
后端开发2022-06-06
解决Pycharm的available packages为空的问题
后端开发2023-08-31
Android Retrofit 中文乱码问题的解决办法
后端开发2023-05-30
Android SDK Manager无法更新问题解决办法
后端开发2022-06-06
Android中Fragment 重叠遮盖问题解决办法
后端开发2023-05-31
vue-cli空格报错问题的分析及解决办法
后端开发2023-05-14
springboot访问404问题的解决办法
后端开发2023-05-14
Android studio 下的APK打包失败问题解决办法
后端开发2023-05-31
oracle 11g使用exp导出空表问题解决办法
后端开发2024-04-02
JAVA8妙用Optional解决判断Null为空的问题方法
后端开发2024-04-02
EasyExcel工具读取Excel空数据行问题的解决办法
后端开发2022-11-13
putty乱码问题的解决办法
后端开发2023-06-10
Android中findViewById获取控件返回为空问题怎么解决
后端开发2022-06-06
咦!没有更多了?去看看其它编程学习网 内容吧