切换fragment时报not attached to Activity错误

来源:互联网 发布:网游客户端编程 编辑:程序博客网 时间:2024/06/03 19:05

这里写图片描述

当我从“工单”切换到“首页”时,报如下错误:

这里写图片描述

报错的那一段代码如下,是工单界面的handler在处理消息时报错:

这里写图片描述


经过研究后找到了原因,如下:

1、进入“工单”界面会发起网络请求,而此时服务器异常,故网络请求会延迟,会在相对长的一段时间后才会返回一个错误码;
2、而我们的操作是点击“工单”后立即点回“首页”。点回“首页”的代码如下:
这里写图片描述
3、注意,经过以上代码,“工单的fragment”已经不再依附“主activity”了;
4、此时,“工单的fragment的handler”才接收到“工单界面发起的网络请求所返回的错误码”,处理这个消息。如第3张图所示,处理时会调用“fragment.mContext”,而此时“工单的fragment”已经没有依附的activity了,故此,会报错。


解决办法如下:

处理消息时先判断fragment有无依附的activity,有的话才Toast;没有的话,说明界面已经切换了,对于上个界面的网络请求失败,也没有必要Toast了。
这里写图片描述

0 0
原创粉丝点击