SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Ist es wirklich notwendig, SQLite-Tabellen bei jedem Start der Anwendung zu erstellen?

Ich glaube du missverstehst dich hier. Wenn ein SQLiteOpenHelper-Objekt erstellt wird, prüft es, ob die SQLite-Datenbank existiert oder nicht, wenn nicht, ruft es seine onCreate( ) auf -Methode (wo normalerweise Entwickler das SQL zum Erstellen einer Datenbank implementieren)

Update:
@Clay Shannon:Ich werde den Mechanismus erklären, mit dem Eclipse und das Android-Projekt funktionieren. Angenommen, Sie verwenden Eclipse zum Programmieren von Android-Projekten. Das neue Projekt erstellt einen Projektordner im Arbeitsbereich (in Ihrem Fall C:\aXX3&Space\Android\workspace und der Projektordner ist OnDemandAndAutomatic_Project ). Dieser Ordner enthält mehrere Unterordner wie:src, bin, assets, res,... Jeder Ordner hat seine eigene Rolle, und Sie interessieren sich für Assets-Ordner, richtig? Der Assets-Ordner wird verwendet, um Referenzdateien zu enthalten (die nicht im res-Ordner abgelegt werden können oder möchten), wie z. B.:HTML-Datei, Sounddatei, Bilddatei, Textdatei ... Diese Dateien sind auch in der apk enthalten. Wenn Sie die apk auf einem Android-Gerät installieren, wird die apk in den Android-Systemordner kopiert und auch ein Ordner mit App-Daten wird erstellt, wie Dharmendra erwähnt:/data/data/{packagename}/ (Paketname wie com.google.app usw., und dieser Pfad gilt für das Android-Betriebssystem Ihres Geräts, nicht für Windows).

Ihr Fall hier ist, dass Sie Ihre bereits vorhandene Datenbank verwenden möchten, also müssen Sie eine Funktion implementieren, die prüft, ob Ihre Datenbank existiert oder nicht, wenn nicht, kopieren Sie Ihre Datenbank in den Datenbankpfad /data/data/ {Paketname}/Datenbanken/ , und rufen Sie diese Funktion auf, wenn Ihre App gestartet wird. Und wie es geht, wird hier bereits beantwortet. So kopieren Sie eine vorhandene Datenbank von einer App in eine andere. Hier ist auch ein Verweis auf den Zugriff auf Asset-Dateien, falls Sie http://www.wiseandroid.com/post/2010/06/14/Android-Beginners-Intro-to-Resources-and-Assets.aspx

Hoffe jetzt kannst du dein Problem lösen. Hinweis :Ihre bereits vorhandene Datenbank muss eine SQLite-Datenbank sein, oder die App wird sie nicht erkennen, selbst wenn Sie in den richtigen Pfad kopieren.