1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Backup / Datenbank Restore klappt nicht

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von thomas.b.reuter, 01.06.2010.

  1. thomas.b.reuter, 01.06.2010 #1
    thomas.b.reuter

    thomas.b.reuter Threadstarter Neuer Benutzer

    Beiträge:
    17
    Erhaltene Danke:
    0
    Registriert seit:
    09.04.2010
    Phone:
    HTC Desire
    Meine App benutzt eine SQLite Datenbank. Momentan versuche ich eine Backup / Restore Funktionalität zu implementieren. Meine Recherche ergab, daß die SQLite Datenbankdatei angeblich einfach kopiert werden kann (Export und Import).

    Genau das habe ich dann implementiert: Beim Start meiner App wird automatisch die SQLite Datei auf die SD Karte kopiert. Eine alte Backupdatei wird vorher umbenannt (Zeitstempel hintendranhängen, d.h. alle Backups werden erstmal aufgehoben).

    Falls der Benutzer auf den "Restore" button drückt, wird die Backupdatei von der SD Karte zurück ins System kopiert, d.h. die Datenbank die von der App benutzt wird, wird überschrieben und sollte im Zustand vor dem letzten erfolgreichen Backup sein.

    Ich habe darauf geachtet, daß keine der drei Activities der App zum "Restore" Zeitpunkt die Datenbank offen hat (close in der onPause-Methode).

    Keine der Kopieraktionen liefert eine Fehlermeldung / Exception, aber nach dem "Restore", d.h. Zurückkopieren des Backup scheint die Datenbank leer zu sein, d.h. meine App findet keine Einträge mehr. Ich kann die Datenbank dann auch wieder ganz normal benutzen und neue Einträge hinzufügen.

    Bevor ich anfange, meinen Code hier reinzustellen, habe ich eine generelle Frage zu dem beschriebenen Verfahren:
    Ist das prinzipiell ok, daß man die Datenbankdatei einfach hin- und herkopiert, solange man darauf achtet, daß die Datenbank nur zum Kopieren (d.h. nur einmal) geöffnet ist?
    Oder lauern hier noch weitere Falltüren, die es zu beachten gilt?
     
  2. thomas.b.reuter, 01.06.2010 #2
    thomas.b.reuter

    thomas.b.reuter Threadstarter Neuer Benutzer

    Beiträge:
    17
    Erhaltene Danke:
    0
    Registriert seit:
    09.04.2010
    Phone:
    HTC Desire
    ... ok, ich glaube das wars: Leider wird in der schönen Java-Dokumentation nicht erwähnt, daß FileReader und FileWriter wohl nur für Textdateien vorgesehen sind. Jedenfalls habe ich meine Kopierfunktion einfach auf InputStream bzw. OutputStream umgestellt und jetzt klappt es! Zumindest im Emulator ...
     

Diese Seite empfehlen