2012-04-13 12 views
1

Ok Ich lerne, Datenbanken in Android zu verwenden und habe mehrere Tutorials, die mir viel gelehrt haben, jetzt weiß ich, wie Sie eine vorbelegte Datenbank und kopieren Sie es in die App im Moment der Installation und Öffnung der App für die erste Zeit und zeigt ihren Inhalt in einer Listenansicht an. Ich habe die Datenbank mit SQLite Database Browser erstellt, also ist meine Frage, wie kann ich diese vorbefüllte Datenbank nicht in meinen App-Assets-Ordner aufnehmen, sie auf meine Website hochladen und von dort abrufen, damit ich dort Aktualisierungen an der Datenbank vornehmen kann Sie müssen die App jedes Mal aktualisieren, wenn sich die Elemente in der Datenbank ändern? Kann ich den SQLite-Datenbankbrowser weiterhin verwenden, um meine Datenbank zu erstellen? Jeder Kommentar wird sehr geschätzt, wenn Sie ein Tutorial teilen können, das mir helfen kann, dies zu erreichen, ist auch sehr willkommen. im voraus Danke.Wie lade ich meine Datenbank auf meine Website, um sie in meiner Android App zu verwenden?

Antwort

1

Meine Lösung kam von YouTube und einigen Tutorials von mimirsoft. 1. Ich erstellte eine Datenbank mit dem Mysql-Assistenten, 2. in Phpadmin Ich erstellte eine Tabelle mit allen benötigten Informationen in meiner App 3. erstellt eine PHP-Datei, die die Daten aus der Datenbank abfragt und erstellt eine JSON-Zeichenfolge, die ich aufrufen kann von meiner App. 4. in meiner App Ich erstelle den Aufruf für die PHP-Datei von ky Website, legen Sie einen Adapter und Halter für die Informationen in meiner Listenansicht angezeigt werden. Das war's! Es funktioniert, wenn etwas ähnliches erreicht werden soll und ich etwas Code bereitstellen kann. Plus Sie können den nächsten Link überprüfen, wo Sie mimirsoft Tutorial zu diesem Thema finden können. Teil 1 http://m.youtube.com/watch?v=P3CwlckiLTU und Teil 2 http://m.youtube.com/watch?v=HTIYt07NDRo

0

Generieren Sie eine SQLite-Dump-Datei und importieren Sie sie in die Datenbank, wobei die erforderlichen Tabellen und Daten ersetzt werden.

Dies ist, was ich in einer Webanwendung, nicht eine native AAPlication getan habe, aber es sollte funktionieren.

0

Es gibt mehrere Möglichkeiten, dies zu tun.

Eine Möglichkeit wäre, die SQLite-Datenbank auf Ihrem Webserver zu haben. Sie können dann überprüfen, ob es sich von der Datenbank unterscheidet, die Sie bereits auf Ihrem Gerät haben. Zum Beispiel haben Sie vielleicht auch eine Textdatei auf Ihrem Server und darin befindet sich eine Zeile, die die Version der Datenbank ist. Innerhalb Ihrer Datenbank haben Sie möglicherweise eine Tabelle mit einer Zeile, die Ihre aktuelle lokale Version enthält. Sie können dann Ihre Datenbank nach der Version abfragen und sie mit der Version in der Textdatei vergleichen. Wenn die lokale Datenbankversion kleiner als die in der Textdatei angegebene Version ist, verwerfen Sie die lokale Version und erhalten Sie die neue Version.

Sie können etwas zu tun, wie dies die Remote-Datei lesen:

URL myFileURL = null; 
InputStream is = null; 
String version = ""; 
try { 
    myFileURL = new URL("http://www.mywebsite.com/dbversionfile.txt"); 
    is = myFileURL.openStream(); 
    BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); 
    String line = ""; 
    while((line = br.readLine()) != null) { 
     version = line; 
    } 
} catch (Exception e) { } 

Eine bessere Lösung als diese mit Ihrer Anwendung eine Skelett-Version Ihrer Datenbank enthalten wäre. Nur eine leere Datenbank mit allen passenden Tabellen. Dann können Sie mit einer PHP/Java/etc-Seite auf Ihrem Webserver kommunizieren und eine JSON-Zeichenfolge von Daten abrufen, die derzeit nicht in Ihrer Datenbank vorhanden sind. Sie können einen Zeitstempel für jede Zeile Ihrer Daten einfügen, wenn Sie diese Methode wählen. Auf diese Weise können Sie eine Abfrage in der lokalen Datenbank Ihrer Geräte für die Zeile mit dem letzten Zeitstempel durchführen. Wenn dieser Zeitstempel kleiner als 1 ist, der von der Datenbank auf Ihrem Server zurückgegeben wird, geben Sie alle Zeilen größer als im JSON-Format zurück.

Möglicherweise möchten Sie die Android JSONObject-Klasse recherchieren, wenn Sie diese Methode verwenden möchten.

Ich bin sicher, dass es auch andere Methoden gibt.

Verwandte Themen