-
getApplicationContext ()
gibt den Anwendungskontext des gesamten Anwendungslebenszyklus zurück, wenn die Anwendung zerstört wird, dann wird sie auch zerstört.
-
this
der Kontext gibt den aktuellen Kontext der Aktivität zurück, der zur Aktivität gehört, wird die Aktivität zerstört, dann wird sie auch zerstört, aber in Ihrem Fall bezieht sie sich auf die Spinner
Instanz, denn wir verwenden diese innerhalb von onItemSelected(AdapterView<?>arg0, View arg1, int arg2, long arg3)
Methode, die von Spinner
Klasse und Spinner
erben diese Methode von AdapterView.OnItemSelectedListener
Schnittstelle
-
getBaseContext()
ist die Methode der ContextWrapper
. Und ContextWrapper
ist, " Proxying-Implementierung von Context, die einfach alle ihre Aufrufe an einen anderen Context delegiert. Kann unterklassifiziert werden, um das Verhalten zu ändern, ohne den ursprünglichen Context zu ändern. "(wie in den Javadocs).
und in Ihrem Fall : Spinner
Klasse ist nicht Unterklasse von Context
o ContextWrapper
Klasse*
Toast.makeText(getBaseContext(),"SELECTED", Toast.LENGTH_SHORT).show();
bedeutet getBaseContext()
ist Methode der ContextWrapper
y ContextWrapper
ist die Proxying-Implementierung von Context
Wir übergeben also indirekt ein Context Class Object.
oder wir können auch 'Activity.this' übergeben, weil Activity
Klasse ist Unterklasse von ContextWrapper
Klasse .
wenn Sie sich für Android-Dokumentation dann erfordert diese Methode ein Objekt der Klasse Context:
public static Toast makeText (Context context, int resId, int duration)
daher können wir keine Aktivität oder einen Klassenkontext übergeben this
à Toast.makeText
die weder eine Unterklasse von Context
または ContextWrapper
Klasse.