• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

文章博客

解决Fragment切换过快程序崩溃

原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/2019/0526/511.html

Android程序员开发,这个问题必然会出现,以下是我遇到时如何解决的

 

方法一:

1、在onCreatView里面执行初始化操作 
2、context使用之前判空 
3、当出现这个问题时,只要在Fragment 中声明一个上下文类型的成员变量,并在onAttach()方法中将getActivity()的值赋给变量,在Fragment中使用到getActivity()时,都是用context即可。也就是说在将Fragment挂载到Activity时,就获得到了这个activity,并将这个activity保存起来了,这样就可以直接使用而不需要每次使用时都调用一遍getActivity()了。 
4、MainActivity重写onSaveInstanceState方法,将super.onSaveInstanceState(outState);注释掉,让其不再保存Fragment的状态,达到其随着MainActivity一起被回收的效果!

方法二:

把commit()方法替换成 commitAllowingStateLoss()------方法是在该Activity即将被销毁前调用,来保存Activity数据的,如果在保存玩状态后再给它添加Fragment就会出错

 

方法三:

在add(fragment)  的时候进行判断 是否已经添加该fragment

方法是isAdded()



上篇:上一篇:[java]byte和byte[]与int之间的转换
下篇:下一篇:Java中split字符串