web-dev-qa-db-fra.com

Différence de contexte et getContext ()

Quelle est la différence entre this et getContext(), quand je dis this je veux dire this dans un Activity.

33
Lukap

En général, il existe deux types de classes. Ceux qui étendent ContextWrapper classe (Activity, Service, Application) et ceux qui ne l'étendent pas (comme View).

  1. Si la classe étend ContextWrapper, vous pouvez utiliser this comme Context. Ces classes n'ont normalement pas de méthode getContext().

  2. Les classes qui n’étendent pas ContextWrapper mais enregistrent et utilisent toujours Context exposent normalement la fonction getContext(). Et vous ne pouvez pas utiliser this comme Context dans de tels cas.

Et ces deux cas s'excluent mutuellement. Au moins, je ne me souviens pas des classes qui étendent ContextWrapper et ont getContext en même temps.

63
inazaruk

getContext() n'est pas défini dans une activité. Il est utilisé dans une sous-classe View (ou View) pour obtenir une référence au contexte englobant (une activité).

16
Ted Hopp

Il n'y a pas de différence. Lorsque vous êtes dans une activité, getContext () le renvoie. C'est parce qu'une activité est un contexte!

5