Разница в контексте этого и getContext () - PullRequest
33 голосов
/ 03 июня 2011

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

Ответы [ 3 ]

63 голосов
/ 03 июня 2011

В целом существует два типа классов. Единицы, которые расширяют класс ContextWrapper (Activity, Service, Application) и те, которые его не расширяют (например, View).

  1. Если класс расширяется ContextWrapper, тогда вы можете использовать this как Context. Такие классы обычно не имеют getContext() метода.

  2. Те классы, которые не расширяют ContextWrapper, но все еще сохраняют и используют Context, как правило, предоставляют функцию getContext(). И вы не можете использовать this как Context в таких случаях.

И эти два случая взаимоисключающие. По крайней мере, я не помню классов, которые расширяют ContextWrapper и имеют getContext одновременно.

16 голосов
/ 03 июня 2011

getContext() не определено в действии. Он используется в View (или View подклассе) для получения ссылки на окружающий контекст (Activity).

5 голосов
/ 03 июня 2011

Разницы нет. Когда вы находитесь в Activity, getContext () вернет это. Это потому, что действие - это контекст!

...