[Android]onActivityCreatedメソッドはFragmentライブラリのバージョン1.3.0以降は非推奨に(原則onViewCreatedで)

Androidのフラグメント(Fragment)にはActivityとは異なる独自のライフサイクルメソッドがあります。

その中で、ひっつき元のActivityのonCreateメソッドが完了した際に呼び出されるonActivityCreatedメソッドというのが存在し、Fragment上のViewの操作や、LiveDataの監視(observe)等はこのメソッド内で行うことがGoogle先生の公式リファレンスやサンプルコードでもなされていました。

ところが、なんとこのonActivtyCreatedメソッドがFragmentのバージョン1.3.0以降は非推奨となりました(現時点の安定版は1.2.5のようなので、そのうち非推奨となります)。

  • onActivityCreated() メソッドは非推奨になりました。フラグメントのビューをタッチするコードは onViewCreated()onActivityCreated() の直前に呼び出される)、他の初期化コードは onCreate() で実行する必要があります。アクティビティの onCreate() が完了した際にコールバックを受け取るには、onAttach() のアクティビティの Lifecycle に LifeCycleObserver を登録し、onCreate() のコールバックを受け取ったら削除する必要があります。 (b/144309266
    • https://developer.android.com/jetpack/androidx/releases/fragment#1.3.0-alpha02

じゃあ、どうしたらいいのかというと、

原則onActivityCreatedメソッドで行っていたことは、onViewCreatedメソッドで行えばいい

ことのようです。

Google先生からのissue trackerにもそのような回答がなされています。

(Fragment上のViewの操作はonViewCreatedでいいよ)

(LiveDataの監視もonViewCreatedでいいよ)

https://issuetracker.google.com/issues/125158199

(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)

こんな記事も読まれています

おすすめコンテンツ




Flutter(フラッター)


みんプロ作成アプリ




TOP