Android -Contextとは-
Contextとは
-----以下、不確かな情報が含まれています。-----
アプリケーション環境に関するグローバルな情報へのインタフェース
Contextクラス通して、アプリケーションのリリース、クラス、アプリケーションレベルの オペレーション(アクティビティの起動、ブロードキャスト、インテントの受信など)にアクセスする ことができます。
アプリ全体の情報を管理し、何から起動されたか、現在の状態、何にアクセスしょうとしているか等の情報を受け渡すために 使用されます。
Contextにアクセスするには、getApplication()、getContext()、getBaseContext()が使用できます。
Activityを継承してるクラス内では、Context取得にthisを使用できます。
ActivityとServeceはContextクラスを継承しているので、Contextメソッドを利用できます。
ActivityのContextとApplicationのContextの2つの違い
-
- ActivityのContext(this)
- Activityに関連していて、Activityが破棄される時(画面の回転等)、Contextオブジェクトも同様に何度 でも破壊されて、何度でも作成されます。
そのため、その場限りで作成、破棄される場合は、getContext()、thisを使用した方がよいと思われます。
-
- ApplicationのContext
- アプリケーションに関連していて、アプリケーションのライフサイクルに関わらず、同じContextオブジェクトである。
そのためstaticな参照をしている場合は、getApplication()を利用した方がよいと思われます。
自分なりのContextのイメージが下記サイトと同じでしたので参考にさせて頂きました。
参考サイト:
整理できない底辺プログラマのメモブログ