web-dev-qa-db-ja.com

onActivityCreatedの前に実行されるonCreateViewでgetActivity()を呼び出すことができるのはなぜですか?

特にgetActivity()を呼び出すときは、Fragmentlifecycle と本当に混乱します。 getActivity()Activityを取得できない場合があります。そして、それは常にいくつかの不可解なバグを引き起こしました。
誰でもパズルを解くことができてありがとう。

19
CodeAlien

getActivity()は、フラグメントが準備中で準備ができようとしている間はnullになる可能性があります。

フラグメントのライフサイクルは、コールバックメソッドにバインドされています。これらのメソッドは、フラグメントの準備中にいつか呼び出されます。

  • Fragment.onActivityCreated(Bundle) は、フラグメントアクティビティがnullにならない場所です。つまり、getActivity()が有効なインスタンスになります。 onCreateView()の後に発生します

アクティビティの存在に対する最も安全な賭けは次のとおりです。

13
Dimitar Genov