Was ist der Unterschied zwischen:
getApplicationContext()
getBasecontext()
getApplication()
getParent()
Können Sie mit einem einfachen Beispiel näher darauf eingehen?
android
android-context
Nikunj Patel
quelle
quelle
Antworten:
getApplicationContext()
Der Anwendungskontext ist mit der Anwendung verknüpft und bleibt während des gesamten Lebenszyklus gleich.getBasecontext()
sollte nicht verwendet werden, verwenden SieContext
stattdessen nur das , was mit der Aktivität verbunden ist und zerstört werden kann, wenn die Aktivität zerstört wird.quelle
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.
quelle