2016-04-27 8 views
1

Ich habe eine Reihe von 4 Anwendungen, die alle eine allgemeine Datenbank benötigen. Der Benutzer kann zuerst eine beliebige App verwenden und diese App erstellt die SQLite-Datenbank.Verwendung der gleichen SQLite-Datenbank in mehreren Android-Apps

Ich denke, ich kann die Datenbank in einem bestimmten Ordner mit einem vollständigen Pfad in der SQLiteOpenHelper erstellen, vielleicht kann ich die Datenbank in einem bestimmten Pfad erstellen und alle Apps diese Datenbank verwenden, aber Daten würden die Sicherheit verlieren.

checkte ich ein paar Antworten, wo es wird empfohlen, ein ContentProvider oder sharedUserId, aber die Beispiele sind für Szenarien zu verwenden, wo eine App seine Daten gemeinsam nutzen wollen, in diesem Fall eine gemeinsame Datenbank für alle Anwendungen ist, Wie kann ich verwenden ContentProvider in diesem Szenario?

Was wäre ein guter Weg, um das zu erreichen?

+0

Wir haben ein proprietäres System erstellt, das viele Apps auf die gleiche Datenbank zugreifen lässt, und wir haben es mit 'ContentProvider' gemacht. Ich denke, das ist der richtige Weg. Die Beispiele für "ContentProvider" sind identisch: Eine App, die ihre Daten teilt, ist dieselbe wie eine Datenbank für alle Apps. – m0skit0

+0

Danke für die Kommentare, @ m0skit0 Ihr Fall ist wirklich ähnlich, Es klingt wie ContentProvider ist der Weg zu gehen, aber ich weiß nicht, welche App würde die Datenbank erstellen, die Idee war "die erste App, die der Benutzer öffnet erstellt die Datenbank "Vielleicht brauche ich, dass nur eine bestimmte App die Datenbank erstellt und die Benutzer dazu bringt, diese zu öffnen, bevor sie alle Apps nutzen können. – joel

+0

Ok, ich verstehe. Ich denke, der Weg zu gehen ist, den 'ContentProvider' in all deine Apps aufzunehmen. Wenn eine App ausgeführt wird, überprüft sie, ob der ContentProvider vorhanden ist. Wenn es das tut, benutzt es nur dieses. Wenn nicht, richtet es es ein und macht es verfügbar. Das einzige Problem, das mir bei diesem Ansatz passieren kann, ist, dass Sie den 'ContentProvider' möglicherweise nicht im Manifest deklarieren könnten. In unserem Fall, da wir das System besitzen, haben wir einen dedizierten "Dienst", der den "ContentProvider" hat, und alle anderen Apps hängen von diesem "Dienst" ab. – m0skit0

Antwort

0

Der beste Weg ist die Verwendung eines ContentProviders in einer Ihrer Apps und die Verwendung der URIs in Ihren anderen Apps. Das ist der einzige Weg, wie Sie eine Datenbank in mehreren Apps teilen können.

Verwandte Themen