getApplicationContext (), getBaseContext (), getApplication (), getParent ()


Antworten:


33

getApplicationContext() Der Anwendungskontext ist mit der Anwendung verknüpft und bleibt während des gesamten Lebenszyklus gleich.

getBasecontext()sollte nicht verwendet werden, verwenden Sie Contextstattdessen nur das , was mit der Aktivität verbunden ist und zerstört werden kann, wenn die Aktivität zerstört wird.


16
Was ist mit getApplication () und getParent ()
Nikunj Patel

107

getApplicationContext () Der Anwendungskontext ist der Anwendung zugeordnet und bleibt während des gesamten Lebenszyklus immer gleich.

getBasecontext () sollte nicht verwendet werden. Verwenden Sie stattdessen nur Context, der der Aktivität zugeordnet ist und möglicherweise zerstört wird, wenn die Aktivität zerstört wird.

getApplication () ist nur für Aktivitäten und Dienste verfügbar. Obwohl in aktuellen Android Activity and Service-Implementierungen getApplication () und getApplicationContext () dasselbe Objekt zurückgeben, gibt es keine Garantie dafür, dass dies immer der Fall ist (z. B. in einer bestimmten Herstellerimplementierung). Wenn Sie also die Anwendungsklasse möchten, die Sie im Manifest registriert haben, sollten Sie niemals getApplicationContext () aufrufen und in Ihre Anwendung umwandeln , da dies möglicherweise nicht die Anwendungsinstanz ist (die Sie offensichtlich mit dem Testframework erlebt haben).

getParent () gibt das Objekt der Aktivität zurück, wenn die aktuelle Ansicht ein untergeordnetes Element ist. Mit anderen Worten, gibt das Aktivitätsobjekt zurück, das die untergeordnete Ansicht hostet, wenn es innerhalb des untergeordneten Objekts aufgerufen wird.


16
Wie Sie bereits erwähnt haben, sollten wir getBaseContext () nicht verwenden. Wenn es nicht so wichtig ist, warum ist es dann in der Codierung und was sind seine Hauptvorteile? Bitte erläutern Sie mich darüber
Pir Fahim Shah

getBaseContext () sollte in ganz bestimmten Situationen verwendet werden. Es gibt hier eine sehr gute Erklärung - medium.com/@ali.muzaffar/…
lomza
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.