getActivity返回null
来源:互联网 发布:fedora centos 很像吗 编辑:程序博客网 时间:2024/05/19 01:10
这两天一直被这个问题困扰,假如app长时间在后台运行,再点击进入会crash,而且fragment页面有重叠现象,让我十分不爽。研究了一天,终于明白其中的原理并加以解决。解决办法如下:
如果系统内存不足、或者切换横竖屏、或者app长时间在后台运行,Activity都可能会被系统回收,然后Fragment并不会随着Activity的回收而被回收,从而导致,Fragment丢失对应的Activity。
这里,假设我们继承于FragmentActivity的类为MainActivity,其中用到的Fragment为FragmentA。
app发生的变化为:某种原因系统回收MainActivity——FragmentA被保存状态未被回收——再次点击app进入——首先加载的是未被回收的FragmentA的页面——由于MainActivity被回收,系统会重启MainActivity,FragmentA也会被再次加载——页面出现混乱,因为一层未回收的FragmentA覆盖在其上面——(假如FragmentA使用到了getActivity()方法)会报空指针,出现crash。
原理虽然有点绕,但是解决办法很简单:
方法1.
MainActivity重写onSaveInstanceState方法,将super.onSaveInstanceState(outState);注释掉,让其不再保存Fragment的状态,达到其随着MainActivity一起被回收的效果!
0 0
- getActivity返回null
- Fragment getActivity()返回null
- getActivity()返回null的解决问题
- Android Fragment getActivity返回null解决
- Android Fragment getActivity返回null解决
- Android Fragment getActivity返回null解决
- 执行Fragment的getActivity()方法返回null
- Android Fragment getActivity返回null解决
- Fragment的getActivity函数返回为null的异常处理
- Activity 被回收之后,Fragment中 getActivity返回null
- Android: Fragment中getActivity()返回null的问题
- 关于fragment的getActivity()返回null的处理
- Fragment的getActivity方法返回null的多种解决方法
- Android: Fragment中getActivity()返回null的问题
- Fragment中getActivity()或getContext()返回null的问题
- android fragment getActivity() null
- 关于Fragment中的getActivity()返回null导致程序崩溃的解决方案
- view pager 结合 fragment 展示页面,fragment中getActivity() 返回为null 解决方案
- 计算机组成原理实验二:RAM实验
- 杨辉三角
- JDK各版的发布时间表
- 时时菜网投系统模板
- 设置editText的四周边框-圆角边框
- getActivity返回null
- forEach指定遍历元素
- JVM学习笔记(一)------基本结构
- Android6.0的权限系统
- iOS UITextField的使用
- 15 3Sum
- SpringMVC + poi 导出excel表格
- 关于Python35爬虫的一些个人想法(我是菜鸟)
- Core Data 简单查询、