ListFragment:防止getListView()和onDestroyView()之间的竞争条件

时间:2013-08-15 10:02:58

标签: android race-condition android-listfragment

我有ListFragment我想要定期更新。更新过程本身非常复杂,可能需要一些时间。这就是我在上一次更新完成5秒后创建一个执行新更新的线程的原因。然后我创建一个处理程序来更新列表,同时跟踪列表中的位置。

问题是,通过在ViewPager中的片段之间快速滑动,我可以强制竞争条件:onDestroyView()可以在处理程序调用{​​{1}}之前调用,从而导致以下错误:

  

java.lang.IllegalStateException:尚未创建的内容视图

我的问题是:如何防止这种竞争状况?有没有办法检查视图是否仍然存在?不幸的是,检查以下代码中getListView()是否已被中断是不够的。

updateThread

1 个答案:

答案 0 :(得分:1)

尝试使用isAdded检查您的片段是否附加到活动