解决Fragment切换过快程序崩溃

方法一:

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()

 

如果以上方法都不行可参考如下:

http://blog.csdn.net/u014727709/article/details/53519937

你可能感兴趣的:(解决Fragment切换过快程序崩溃)