我有一个基本上可以正常工作的片段。在 onResume 方法中,当用户访问活动/片段时,我执行 api 调用以获取新数据。
public void onResume(){
super.onResume();
//in pseudo
do async call
success callback
update ui
failure callback
update ui
}
这在大多数情况下都可以正常工作。但是,当用户在更新 ui 方法完成之前导航回父活动时,我遇到了一个问题。更新 ui 只是设置了一些文本视图。
例如,当用户导航到活动和片段时,上面的 onResume 被调用。用户立即返回父活动。异步调用和更新 ui 尚未完成,我得到:
致命异常:主进程:com.project.foobar,PID:4405 java.lang.IllegalStateException:片段 MyDetailFragment{41ebb478} 未附加到 Activity
这是在成功回调后在更新 ui 方法中抛出的。我使用 square 的改造来管理 api 调用。同样,这只是在更新 ui 尚未完成时发生。当我等待它完成并返回时,一切都很好。
有什么想法可能是错的吗?