最近在做项目的时候用到了fragment,发现在有时候用getactivity会出现空指针异常,原因一直未曾弄明白,也有人说这是fragment的BUG,不管怎么样,解决方法还是很简单,只要在fragment里写一个构造方法,在构造方法里传环境参数就行了。但是有时候还是会有,异常原因一直不明,有大神知道的望指教..
后记:
通过查看源码发现fragment里有一个initstate方法,在activity被替换掉的时候mActivity便赋值给了null。如图
而这个方法会在replace操作的时候执行,意思就是替换fragment的时候被替换的fragment会执行initstate()方法,会把原先的mActivity重新赋值为null,如果此时涉及到异步操作并需要context的话,便会抛出空指针异常,因为在异步操作完成前fragment已经执行initstate()了,mActivity已经被重新赋值为null了,所以如果此时调用getactivity的话会抛异常。
有不明白的加博客留言一起交流,共同进步;