fragment里getactivity空指针问题
2013-12-02 14:59
155 查看
最近在做项目的时候用到了fragment,发现在有时候用getactivity会出现空指针异常,原因一直未曾弄明白,也有人说这是fragment的BUG,不管怎么样,解决方法还是很简单,只要在fragment里写一个构造方法,在构造方法里传环境参数就行了。但是有时候还是会有,异常原因一直不明,有大神知道的望指教..
后记:
通过查看源码发现fragment里有一个initstate方法,在activity被替换掉的时候mActivity便赋值给了null。如图
而这个方法会在replace操作的时候执行,意思就是替换fragment的时候被替换的fragment会执行initstate()方法,会把原先的mActivity重新赋值为null,如果此时涉及到异步操作并需要context的话,便会抛出空指针异常,因为在异步操作完成前fragment已经执行initstate()了,mActivity已经被重新赋值为null了,所以如果此时调用getactivity的话会抛异常。
有不明白的加博客留言一起交流,共同进步;
后记:
通过查看源码发现fragment里有一个initstate方法,在activity被替换掉的时候mActivity便赋值给了null。如图
而这个方法会在replace操作的时候执行,意思就是替换fragment的时候被替换的fragment会执行initstate()方法,会把原先的mActivity重新赋值为null,如果此时涉及到异步操作并需要context的话,便会抛出空指针异常,因为在异步操作完成前fragment已经执行initstate()了,mActivity已经被重新赋值为null了,所以如果此时调用getactivity的话会抛异常。
有不明白的加博客留言一起交流,共同进步;
相关文章推荐
- jquery表单提交验证
- Hive+GenericUDF示例一
- MVC3.0 修改操作
- initWithNibName与viewDidLoad执行顺序
- 第二章 伪分布式安装hadoop hbase
- HTTP协议详解
- 嵌入式 VI常用命令整理
- 嵌入式 c语言exit和return在程序中表现的区别
- 嵌入式 一句语言实现查找某个结点是否在二叉树里
- 嵌入式 二叉树实现通讯录管理系统
- 嵌入式 关于scanf("%c",&ch)实现拦截时候出现直接跳过的问题
- 嵌入式 实现自己的printf函数小示例
- 嵌入式 C语言中.h和.c文件解析经典收藏
- 嵌入式 用链表实现直接选择排序和直接插入排序示例
- 嵌入式 一个简单的个人通讯录(基于二叉排序树,带注释)
- 嵌入式 线性表(顺序表,链表)示例
- 嵌入式 select用于实现I/O多路复用示例
- 嵌入式 一个基于linux的聊天软件(并发服务器,sqlite3数据库,有注释)
- 嵌入式 makefile编译静态库和动态库(
- 嵌入式 ubuntu12.04下tftp安装、配置、测试