LoginSignup
0
0

[Android] Contextって何者なん?~Application Context編~

Posted at

Contextって何者?

Androidではよく引数にcontextを渡すことがあります。(画面遷移のintent作成時など。)
私もAndroidアプリを開発を始めた際に、疑問に思ったことがあります。
ですので、今回はこのContextに注目してみようと思います。

大まかに2種類あるContext

実はAndroidにおけるContextは大きく分けて以下の2種類があります。

  1. Application Context
  2. Activity Context

今回はApplication Contextについて考えてみて、明日Activity Contextについて記載したいと思います。

Contextとは

まず、公式サイトの内容を見てみたいと思います。
https://developer.android.com/reference/android/content/Context

Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.

などと記載されていますが、要約すると、「アプリケーション環境に関するグローバル情報へのインターフェイスで、このクラスによってAndroid側のシステムの値やメソッドにアクセスできる。」ということだと思います。

Application Context

では、先ほどから出てきているApplication Contextについてですが、
そもそものApplicationクラスを見てみると、Contextクラスを継承しています。
https://developer.android.com/reference/android/app/Application

そのためApplication Contextは、アプリで基本的に一つしか存在しません。
(明日も記載しますがActivity Contextは違います。)

これはとても大切なことでこのことを理解せずに実装すると、メモリリークを起こす可能性があります。
こちらに関しては、以下の記事などに詳しく記載されていましたのでここでは割愛します。
https://blog.meilcli.net/2018/12/26/185752
https://qiita.com/roba4coding/items/0585b8240873ec5e9c20

ということで、少しはContextについて理解できましたでしょうか?
明日はもう一つのActivity Contextについて記載したいと思います!
ではまた明日:writing_hand:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0