AndroidのContextの概念について

2019年5月13日

Contextとは?

Contextとはアプリケーション全体の情報を保持するActivityのスーパークラスです。

アプリケーション全体の情報とは、具体的には以下の通りになります。

  • Applicationのクラス、Applicationレベルのオペレーション情報
    (Activityの起動状態、Broadcast、Intentの受信状況など)
  • アプリ全体の情報を管理し、何から起動されたか、
    現在の状態から何にアクセスしようとしているか等の情報

 

 

ActivityのContextとApplicationのContextの違い

  • ActivityのContext
    • thisでよく使われます。これはActivityがContextクラスを継承している為です。
    • ライフサイクルがActivityに依存します。
      従ってActivityが破棄される際にContextも破棄しないとメモリリークします。
  • ApplicationContext
    • ライフサイクルがApplicationに依存します。
    • Applicationに依存するクラス、複数のクラスから呼ばれたりする場合に使用すると良いでしょう。