Android - Content Provider API
Aus Wikizone
Überblick[Bearbeiten]
- Content Provider stehen Betriebssystemweit zur Verfügung
- Zugriff über URI - die App weiß nicht welcher Content-Provider die Anfrage auflöst (z.B. Google Maps oder Orux Maps)
- Die Content-Provider-API ermöglicht einen vollständigen Zugriff auf die geteilten Inhalte.
- Inhalte können erstellt, gelesen, aktualisiert und gelöscht werden. Es gibt Requests zu folgenden Zwecken:
- neue Datensätze erstellen
- einen, alle oder eine begrenzte Menge von Datensätzen abrufen
- Datensätze aktualisieren
- Datensätze löschen
Warum Content Provider[Bearbeiten]
Content-Provider speichern Anwendungsdaten, weil View und Controller sich damit nicht befassen sollten (Model View Controler Prinzip). Ein UI sollte nur aus gut angeordneten UI-Kompenten bestehen, die einzig und allein darauf ausgerichtet sind, Benutzeraktionen aufzunehmen. Ein gut geschriebener Anwendungscontroller enthält nur die Domain-Logik der Mobilanwendung.
Das Teilen von Daten zwischen Anwendungen wird vereinfacht. Man braucht in vielen Fällen auch keine speziellen Dateien zu speichern.
Content Provider bauen[Bearbeiten]
Aufgaben[Bearbeiten]
- Öffentliche Content-Provider-API erstellen, über die Clients auf den Content-Provider zugreifen können. Dazu:
- einen CONTENT_URI für Ihren Content-Provider definieren
- die Spaltennamen für die Kommunikation mit Clients erstellen
- öffentliche statische String-Objekte deklarieren, die Clients zur Angabe von Spalten nutzen können
- MIME-Typen für alle neuen Datentypen definieren
- Sie müssen Ihren Content-Provider implementieren. Dazu müssen Sie die folgenden Dinge tun:
- zentrale Content-Provider-API -> die Klasse ContentProvider erweitern, um eine eigene Content-Provider-Implementierung anzubieten.
- Provider-URI einrichten.
- SQLite-Datenbank und die damit verbundenen Cursor erstellen, um die Content-Provider-Daten zu speichern.
- Cursor einsetzen, um Daten für Clients zur Verfügung zu stellen, und gleichzeitig dynamische Aktualisierungen unterstützen.
- den Prozess definieren, über den Binärdaten an den Client zurückgeliefert werden.
- die grundlegenden query-, insert-, update- und delete-Datenmethoden eines Cursors implementieren, der an den Client zurückgeliefert wird.
- AndroidManifest.xml-Datei aktualisieren, um Ihren <provider> zu deklarieren.