📱
[Android] Contextを理解する
droidkaigi2024を見たので復習用にメモ
Contextとは
アプリがアプリ内外の様々な情報や機能にアクセスするためのインターフェース
使用例
文字列リソースにアクセス
contextによって端末のlocaleに応じた文字列リソースを取得することができる
通知
contextを通じてNotificationManagerにアクセスできる、通知作成に必要なリソースも取得できる
contextの種類と使い分け
継承しているクラスは多くあるが、重要なのはActivityとApplication
ActivityContext
Activityのライフサイクルに依存
用途はActivityのライフサイクル内での短期的な処理、Activity情報が必要な処理
ApplicationContext
アプリのライフサイクルに依存
Activityのライフサイクルを超えて行われる処理
Workerやデータベースへのアクセス
WorkerはActivtyContextを渡しても内部でApplicationContextを使用しているのでクラッシュしないらしい
LocalContext
CompositonLocal(ツリー構造の中で値を受け渡す)という仕組みを使ってcontextを提供
Discussion