Android - Content Provider API

Aus Wikizone
Version vom 11. Oktober 2013, 09:48 Uhr von 79.240.26.138 (Diskussion) (Die Seite wurde neu angelegt: „ == Überblick == * Content Provider stehen Betriebssystemweit zur Verfügung * Zugriff über URI - die App weiß nicht welcher Content-Provider die Anfrage aufl…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Ü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.