this
とgetContext()
の違いは何ですか。this
と言うと、this
内のActivity
を意味します。
一般に、クラスには2つのタイプがあります。 ContextWrapper
class(Activity
、Service
、Application
)を拡張するものと、拡張しないもの(View
など)。
クラスがContextWrapper
を拡張する場合、this
をContext
として使用できます。このようなクラスには通常、getContext()
メソッドがありません。
ContextWrapper
を拡張しないが、Context
を保存して使用するクラスは、通常getContext()
関数を公開します。また、そのような場合はthis
をContext
として使用できません。
そして、これら2つのケースは相互に排他的です。少なくとも、ContextWrapper
を拡張するクラスと、getContext
を同時に持っているクラスは思い出せません。
getContext()
はアクティビティで定義されていません。 View
(またはView
サブクラス)で使用されて、囲んでいるコンテキスト(アクティビティ)への参照を取得します。
違いはありません。アクティビティにいるとき、getContext()はこれを返します。これは、アクティビティがコンテキストであるためです!