LoginSignup
4
2

More than 3 years have passed since last update.

【Android】Contextについて

Posted at

【Android】Contextについて

  • Contextとは
    • Androidによって、実装が提供されているクラス
    • アプリケーションとのインターフェースの役割をしていて、アプリ名の取得(getPackageName)などのアプリのリソースなどを取得できる
    • AppCompatActivity(Activityが継承するクラス)もContextを継承しているので、intentなどの引数にAcitivity.thisで渡せる

Contextの2つの取得方法

  • Contextを取得する方法は、2つあります。

    • 1つめは、Activityでthis 例: MainActivity.this
    • 2つめは、getApplicationContextを使う
  • 以下に、それぞれについてまとめる

それぞれの使い分け

  • ApplicationContextを使うタイミング

    • Acitivityのライフサイクルより長い時間使いたい場合
    • Acitivityから取得するContextはActivityのライフサイクル依存するため、それよりも長い期間使用したい場合は、こちらを使う感じになると思います。
  • ActivityのContextを使うタイミング

    • いろいろ調べたところ、基本的にはこちらを使うので問題ないのではと思っています。
    • 例えば、viewに渡すcontextはこちらの方がよく、なぜならActivityに適用したテーマなどが反映されなくなるためです。

まとめ

  • Contextとは、アプリケーションとのインターフェースになるクラス
  • 取得方法は、2つ( getApplicationContext, Activity.this)
  • 大体は、Activity.thisで取得する方がいいんじゃないのか。

参考記事

Android DeveloperのContext
Androidの勉強:Contextについて

4
2
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
4
2