web-dev-qa-db-ja.com

アクティビティに関するフラグメントのライフサイクル

状況アクティビティは非同期操作で待機し、非同期操作からの応答を聞いた後、その中の2つのフラグメントに情報を渡す必要があります。

要件 1.両方のフラグメントは、レイアウトをロードするためにonCreateView呼び出しを行う必要があります。2. getActivity()動作します。

両方のフラグメントにsetData()メソッドを作成し、それらを呼び出すためのアクティビティのライフサイクルの「正しい」場所を探しています。

アクティビティのonCreate()は機能せず、アクティビティのonStart()は機能せず、フラグメントのonStart()は機能しません。

何も動作しません、ここで何が欠けていますか?

27

フラグメントライフサイクル の公式ドキュメントはこれを明確に説明しています-それを参照して、不明な点がある場合はフォローアップの質問をしてください。

16
Vineet Shukla

この画像は、両方のライフサイクルを一緒に理解するのに役立ちます。

多くの人々が苦情を述べており、このライフサイクルが複雑すぎることはやや妥当な議論であるため、Google I/O 2018では、Architectureコンポーネントフレームワークの使用を提案しています。これを確認してください Docs

enter image description here

12
TapanHP

onAttachFragment()-activityは、onCreate()-activityの前とonAttach()-fragmentの後に呼び出されます

0
David A

Activity2---->backpress--->Fragment2(Activity1)にいるときは、_Activity1_を再び_fragment2_からアタッチするので、_OnAactivityCreated()メソッド_Activity1_は完全にロードされます....そのため、Activity1のsetData()メソッドを呼び出すことができます...

0
user2239249