[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

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

アバター

北川 博之(きーぼー)

みんなのプログラミング by Telulu LLC代表 大阪府生まれ。京都大学経済学部経済学科卒業。 2000年より、日本生命保険、ニッセイアセットマネジメント、パトナム・インベストメンツ(米国)で、日本株トレーダー・アナリスト、経営企画、システム開発等の業務に従事。主に日本株の売買執行・投資分析、経営計画の策定、海外投資家向け日本株営業、社内トレーディングシステム及び経理システムの開発等を行う。 2016年、合同会社てるる設立。スマホアプリプログラマーとして「新感覚脳トレアプリ・記憶戦隊オボエルンジャー」「Meisoー1番シンプルなマインドフルネス瞑想アプリ」をはじめとした、メンタルヘルス・知育系アプリを中心に4タイトル・計8本(Android・iOS)をリリース。 2017年、自身のこれまでの社会人経験・プログラミング経験・子育て経験を基に、プログラミングを通じて人々の人生を豊かにして、未来に希望の持てる明るい社会の実現に貢献したいとの想いから、プログラミング完全初心者と挫折経験のある人を支援する「プログラミング挫折撲滅プロジェクト・みんなのプログラミング by Telulu LLC」を設立し、プログラミングサポーター活動と心理カウンセリング活動を開始。これまでに3,000名を超える方のプログラミング挫折撲滅をサポート。

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

みんプロにかける想い

  1. プログラミングは手段の1つに過ぎない(目的は自分のアイデアを形にすること)

  2. プログラミングはみんなのもの!(プログラミングの醍醐味である「楽しさ」を伝えたい)

  3. こんな無駄な苦労をするのはぼくで最後にしたい(ぼくがプログラミング講座をはじめたわけ)

  4. プログラミングを通じて「やわらかい世の中」を作りたい(ぼくがプログラミング講座をやっている本当の理由②)

  5. ぼくが別に言う必要のない挫折の黒歴史をあえてさらけ出している理由(自分の中にある「ブロック」を外すきっかけにしてほしい)

みんプロ作成アプリ




みんプロ代表の黒歴史


TOP