「アクティビティのライフサイクルのステージ」をやりました!
はじめに
「Composeを用いたAndroidアプリ開発の基礎」内のコードラボ「アクティビティのライフサイクルのステージ」をやったので、やっていて自分的にためになったこと、覚えておいたほうがいいことなどを箇条書きでまとめた記事となっています。
学んだこと
・Logにはそれぞれ役割がある。Log.vだと詳細メッセージをログに記録する。Log.dはデバッグメッセージを書き込む。他にも、Log.iは情報メッセージ用、Log.wは警告メッセージ用、Log.eはエラーメッセージ用などある。
・Logは構造的にtag, msgの2つに分かれている。tagはLogcatでログメッセージを簡単に見つけるための文字列。msgは実際のログメッセージ。
・Logcatで探す際はpackage:mainがあるテキストボックス内で「package:main tag:TAG名」で検索しフィルタリングする
・アクティビティのライフサイクルの状態には、Activityクラスでオーバーライド可能な対応するコールバックメソッドがある。onCreate()、onRestart()、onStart()、onResume()、onPause()、onStop()、onDestroy()
・onStart()が呼び出されると、アプリが画面に表示される。onResume()が呼び出されるとアプリを操作できるようになる。アプリを操作できることをユーザーフォーカスという。そしてユーザーフォーカスがある期間をフォアグラウンドの存続期間という。
・アプリがバックグラウンドに移行するとonPause()が呼び出されアプリを操作できなくなり、onStop()以降はアプリが表示されなくなる。
・onResume() メソッドはアクティビティがフォーカスを得たときに呼び出され、onPause() はアクティビティがフォーカスを失ったときに呼び出される。
・Composeが状態を監視するようにするには、型をStateかMutableStateにする必要がある。State型は不変で、読み取りのみが可能。MutableState型は可変で、読み取りと書き込みが可能。
・rememberがついてないとコンポーザブルが再実行されるたびに、初期値になってしまう。
・AndroidOSがアクティビティを破棄して再作成する場合に必要な値を保存するには、rememberではなくrememberSabeableを利用する。
さいごに
今回のコードラボは実際にコードを書いて覚えるというよりかは、Androidのライフサイクルがどのような感じになっているのかを体験しつつ覚えるという感じでこれまでにやってきたコードラボとは毛色が違い新鮮でした。
今回学んだことは、覚えなきゃいけないことが多いため復習しライフサイクルがどの様になっているか覚えようと思います。
次は、「演習:Dessert ClickerにViewModelを追加する」をやろうと思います。「ComposeでのViewModelと状態」も重要だと思うのですが、過去にやったことがあるため、今回はパスしてすぐ演習に入ろうと思います。