📱

[Android] Contextを理解する

2024/11/07に公開

droidkaigi2024を見たので復習用にメモ
https://www.youtube.com/watch?v=1poogS3bGZA

Contextとは

アプリがアプリ内外の様々な情報や機能にアクセスするためのインターフェース

使用例

文字列リソースにアクセス

contextによって端末のlocaleに応じた文字列リソースを取得することができる

通知

contextを通じてNotificationManagerにアクセスできる、通知作成に必要なリソースも取得できる

contextの種類と使い分け

継承しているクラスは多くあるが、重要なのはActivityとApplication

ActivityContext

Activityのライフサイクルに依存
用途はActivityのライフサイクル内での短期的な処理、Activity情報が必要な処理

ApplicationContext

アプリのライフサイクルに依存
Activityのライフサイクルを超えて行われる処理

Workerやデータベースへのアクセス

WorkerはActivtyContextを渡しても内部でApplicationContextを使用しているのでクラッシュしないらしい

LocalContext

CompositonLocal(ツリー構造の中で値を受け渡す)という仕組みを使ってcontextを提供

Discussion