В чем разница между this
и getContext()
, когда я говорю this
, я имею в виду this
в пределах Activity
.
Разница в контексте this и getContext()
Ответ 1
В общем, существует два типа классов. Которые расширяют ContextWrapper
класс (Activity
, Service
, Application
) и те, которые его не расширяют (например, View
).
-
Если класс extends
ContextWrapper
, вы можете использоватьthis
какContext
. Обычно такие классы не имеют методаgetContext()
. -
Те классы, которые не расширяют
ContextWrapper
, но сохраняют и используютContext
, обычно открывают функциюgetContext()
. И вы не можете использоватьthis
какContext
в таких случаях.
И эти два случая являются взаимоисключающими. По крайней мере, я не помню классы, которые расширяют ContextWrapper
и имеют getContext
одновременно.
Ответ 2
getContext()
не определяется в Activity. Он используется в подклассе View
(или View
), чтобы получить ссылку на охватывающий контекст (действие).
Ответ 3
Нет никакой разницы. Когда вы находитесь в Activity, getContext() вернет это. Это связано с тем, что Activity является контекстом!