Sind Aktivität und Kontext gleich oder gibt es Unterschiede?
Wann sollte eine Methode eine Aktivität übergeben und wann einen Kontext?
Sind Aktivität und Kontext gleich oder gibt es Unterschiede?
Wann sollte eine Methode eine Aktivität übergeben und wann einen Kontext?
Antworten:
Soweit ich weiß:
Kontext ist das Basisobjekt. Jede Aktivität, die mit der Anwendung identisch ist, leitet sich aus dem Kontext ab. Dies bedeutet, dass jede Aktivität und jeder Application
IS a Context
;
Aus der developer.android.com
Aktivität
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.view.ContextThemeWrapper
↳ android.app.Activity
Und Anwendung
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Application
Ein Anwendungskontext bleibt so lange bestehen, wie Ihre App aktiv ist, während der Aktivitätskontext mit Ihrer Aktivität stirbt (er ist nach onDestroy
dieser Aktivität nicht mehr gültig ).
Wenn Sie also den Kontext für alle Aktivitäten benötigen (dh in einem Singleton), ist es besser, einen Anwendungskontext zu verwenden.
Bei Android Framework-Methoden, bei denen ein Kontext erwartet wird, spielt es normalerweise keine Rolle, welchen Sie übergeben. Beachten Sie jedoch immer MemoryLeaks, wenn Sie langlebige Verweise auf einen Kontext behalten
Wie Sie auf dem Android-Dokument sehen können :
Die Activity-Klasse erstreckt sich von "ContextThemeWrapper" und diese von "ContextWrapper" und die von "Context".
Also, ja, eine Aktivität erweitert den Kontext!