Der Titel fasst meine Frage zusammen, aber um im Grunde zu erläutern, was ich verstehen möchte, ist, warum die Android-Designer Apps möchten, die mit gemeinsam genutzten Daten arbeiten müssen, um einen Inhaltsanbieter zu verwenden, anstatt nur direkt auf die SQLite-Datenbank zuzugreifen.
Der einzige Grund, an den ich denken kann, ist die Sicherheit, da auf bestimmte Dateien nur über bestimmte Prozesse zugegriffen werden kann. Auf diese Weise ist der Inhaltsanbieter der Gatekeeper, der sicherstellt, dass jede App über die richtigen Berechtigungen verfügt, bevor Lese- und / oder Schreibzugriff auf die Datenbankdatei gewährt wird. Ist das der Hauptgrund, warum ContentProvider erstellt wurde?
Das
ContentProvider
abstrahiert auch die gesamte prozessübergreifende Kommunikation, die für die Kommunikation mit anderen Anwendungen von Drittanbietern erforderlich ist. Diesen Code selbst schreiben zu müssen, wäre ein großer Schmerz.quelle
ContentProvider ist auch eine Abstraktion, die die Details der Speicherung / Generierung der Daten verbirgt. In einer meiner Apps habe ich beispielsweise einen Inhaltsanbieter, der PNG-Bilder zurückgibt. Diese Bilder werden nirgendwo gespeichert, sondern bei Bedarf generiert.
quelle