ListFragment の外側から restartLoader() を呼び出すと、少し問題が発生します。シーケンスは、アクティビティを開く [追加] ボタンをタップ -> データを入力 -> [保存] をタップし、サーバーにデータを保存するための AsyncTask を開始します。データ転送が成功したら、前のアクティビティに戻ります -> getLoaderManager().restartLoader() を実行する ListFragment 内のメソッドをアクティビティに呼び出します。
これにより、必ず「java.lang.IllegalStateException: Fragment ListsFragment{42481238} not attached 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 を更新するにはどうすればよいですか?