Kontexte unter Android
Ein Kontextobjekt (kurz: Kontext ) ist ein Objekt, das diverse Informationen zu einem Prozeß (wie eine Aktivität oder eine Anwendung) enthält. Man sieht einen Kontext auch als eine Art von „Umgebung“ an, unter der Programme oder Programmteile laufen. Ein Kontext enthält verschiedene Informationen für den Prozeß oder zum Prozeß und erlaubt den Zugriff auf verschiedene Dienste des Betriebssystems, wie beispielsweise den Zugriff auf Geräteeigenschaften und Gerätedienste/Systemdienste sowie Prozeßspezifische Ressourcen, Klassen, Dateien, Datenbanken, Klassenlader und Einstellungen.
Für uns sind hier zunächst besonders die Kontexte von Aktivitäten interessant.
Ein Aktivität hat ihren Kontext als Obertyp. Daher repräsentiert in einer nicht-statische Methode einer Aktivität das Schlüsselwort »this« gleichzeitig sowohl die Aktivität als auch den Kontext. Wir verwenden manchmal folgende Variablen, um zwei verschiedene Bezeichnungen für »this« zu haben, die verdeutlichen, ob an einer Stelle eine Aktivität oder nur ein Kontext benötigt wird.
- this-Alias-Variablen
final android.content.Context context = this;
final android.app.Activity activity = this;
Falls eine Methode einen Kontext als Argument erwartet, dann kann ihr in der Regel das aktuelle Aktivitätsobjekt (in der Regel also »this«, beziehungsweise »context« nach obiger Deklaration) übergeben werden.
(Falls ein Aufruf sich nicht in einer Aktivität befindet, kann unter Umständen auch das Anwendungsobjekt als Kontext übergeben werden, dies ist aber oft nicht ausreichend. Für Objekte der graphischen Benutzeroberfläche werden fast immer Aktivitätskontexte erwartet.)