我有一个片段,该片段包含一个ViewPager。
如果在片段中使用来自服务器的数据触发回调,则有时片段会丢失其Activity。
我在尝试获取片段的活动时遇到以下错误:
java.lang.IllegalStateException:片段尚未附加。
是什么导致这种情况?
答案 0 :(得分:0)
在Http网络库(如Retrofit)中,回调(onResponse()
,OnError()
)在MainThread
上运行而不知道Fragment
是否附加到Activity
不是吗?
因此,如果您尝试执行UI操作,它将通过java.lang.IllegalStateException
导致应用程序崩溃。
<强>解决方案: - 强>
您可以在执行任何操作之前检查是否添加了Fragment
,
if (isAdded()) {
//.. perform your operation here...
}