FragmentTabsPager の ABS の例に従いましたが、この問題に直面しています:
- アクティビティ A には 2 つのフラグメントがあります: F1、F2 は、TabsAdapter を使用して A の onCreate() メソッドに追加されます。
- アクティビティ A には、 http://developer.android.com/guide/components/fragments.html#CommunicatingWithActivityに従って行われるフラグメントを更新するオプションがあります。
- アクティビティ A には、アイテムを F1 に追加するアクティビティ B を起動するオプションがあります (したがって、F1 を更新する必要があります)。
ただし、B を終了すると、フラグメントは A に接続されなくなります。いくつかのデバッグの後、A の onCreate() メソッドが、次のエントリを含む savedInstanceState で B を終了した後に呼び出されることがわかりました。
android:support:fragments=android.support.v4.app.FragmentManagerState$41bfffe0
私の理解では、FragmentActivity は B を起動する前にフラグメントを保存し、A を再起動した後、フラグメントを復元しようとします。少しトレースしたところ、B を終了した後、これらのアクションが呼び出されることがわかりました。
Activity A: constructor called
Fragment F1: constructor called
Fragment F2: constructor called
Fragment F1: onAttach
Fragment F1: onCreate
Fragment F2: onAttach
Fragment F2: onCreate
Activity A: onCreate
Activity A: TabsAdapter created
TabsAdapter: addTab android.widget.TabHost$TabSpec@41d949f8
Fragment F1: constructor called
TabsAdapter: addTab android.widget.TabHost$TabSpec@41d965d0
Fragment F2: constructor called
Fragment F1: onActivityCreated
Fragment F1: onCreateLoader
Fragment F2: onActivityCreated
Fragment F2: onCreateLoader
Activity A: onStart
Fragment F1: onResume
Fragment F1: onCreateLoader
Fragment F2: onResume
Fragment F2: onCreateLoader
Activity B: onStop
Fragment F1: onLoadFinished
Fragment F2: onLoadFinished
各フラグメントには 2 つのインスタンスがあり、表示されているフラグメントはアクティビティに関連付けられていません。
どうすればこれを解決できますか? 私は何を間違っていますか?復元されたフラグメントを取得する方法があったとしたら?
前もって感謝します