【发布时间】:2012-07-20 21:42:41
【问题描述】:
我在从 ListFragment 外部调用 restartLoader() 时遇到了一点问题。该序列按照点击“添加”按钮打开一个活动 -> 输入数据 -> 点击保存,这将启动一个 AsyncTask 以将数据存储在服务器上。数据传输成功后,返回上一个 Activity -> 让 Activity 调用 ListFragment 中运行 getLoaderManager().restartLoader() 的方法。
这总是会创建一个“java.lang.IllegalStateException: Fragment ListsFragment{42481238} not attach to Activity”-错误。如果我将 restartLoader() 移至 onResume 效果会稍微好一些,但我还有其他按钮可以直接修改连接到 ListFragments 的数据,无论如何仍然会触发 IllegalStateException。
从 logcat 中摘录错误消息
E/AndroidRuntime(29594): java.lang.IllegalStateException: Fragment ListsFragment{42450b18} not attached to Activity
E/AndroidRuntime(29594): at android.support.v4.app.Fragment.getLoaderManager(Fragment.java:768)
E/AndroidRuntime(29594): at testpager.ListsFragment.resetList(ListsFragment.java:122)
我错过了什么?如何在不触发此异常的情况下从 FragmentActivity 刷新 ListFragment?
【问题讨论】:
标签: android android-fragments android-viewpager android-loadermanager