Подтвердить что ты не робот

Разница в контексте this и getContext()

В чем разница между this и getContext(), когда я говорю this, я имею в виду this в пределах Activity.

4b9b3361

Ответ 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 является контекстом!