私はこの断片的なライフサイクルビジネスを完全には理解していません。
アプリの「詳細を表示」セクションに、かなり標準的な3ページの水平スライダービューのポケットベルレイアウトがあります。3つの中央のページからアプリを起動します。My FragmentActivityは、ページをページ1に設定します。
mPager.setCurrentItem(1); //default to center page, current data view fragment
FragmentPagerAdapterを使用すると、一時停止状態から戻ったときなどにアプリがクラッシュすることがあったため、FragmentStatePagerAdapterを使用してきました。これが、今のところこれを回避する最も簡単な方法でした。うまくいくように見えますが、おそらくここでの私の問題の原因は州の側面であると思われます。
そのため、最初は、各フラグメントにRESTサービスからデータを取得してリストに表示する作業を行わせると思っていましたが、それ以上はわかりません。
一意の非同期タスクを実行して、CreateViewイベントの各フラグメントのデータをフェッチしてみました。次に、フラグメントのライフサイクルについて詳しく読んだ後、onCreateViewが非常に頻繁に呼び出されていることに気づき、onCreateに切り替えました。これにより、ネットワークを介してデータを頻繁に要求する貪欲なアプリが作成されました。
onCreateに切り替えても何も変わりません。OnCreateは、隣接する2つのフラグメントに対してonCreateViewと同じように呼び出されます。
奇妙なことに、フラグメントアクティビティで最初に表示するように設定したフラグメントは、onCreateが1回だけ呼び出されます。
ここで何かが感じられません。
今のところ、親フラグメントアクティビティで宣言し、すべての非同期タスクを呼び出して、フラグメントに表示する必要のあるデータをフェッチする必要があると考えています。親フラグメントアクティビティが所有するオブジェクトに非同期呼び出しの結果を設定してから、フラグメントが親に含まれるオブジェクトを使用してリストビューなどを作成するようにします。
しかし、親アクティビティによって開始された非同期タスクが、CreateViewの各フラグメントが呼び出され、親に含まれるオブジェクトの準備がまだできていない場合はどうなりますか。
署名、混乱、欲求不満