2017-11-28 3 views
-1

Ich habe sqlite Datei in Assets und dbflow lesen Sie es richtig, aber zur Laufzeit muss ich manchmal herunterladen eine neue aktualisierte SQLite-Datei aus dem Internet und legen Sie in bestimmten Ordner in SDK so wie dbflow Datenbank von dieser SQLite-Datei in SDKARD aktualisieren , um Daten aller Tabellen zu entfernen und die neuen Daten aus der Datei bei SD-Karte zu ihnen hinzuzufügen?Wie man Datenbank durch sqlite Datei aktualisiert, die vom Internet zur Laufzeit heruntergeladen wird?

+0

einfach die neue Datenbank anstelle der alten zu kopieren, indem Sie die gleiche Position beibehalten wird. Und starte deine App neu. Ihre App wird jetzt die neue Datenbank verwenden. –

Antwort

0

Versuchen Sie den BElow-Code. Dies ist eine Sicherung, die ich von der Anwendung zum Wiederherstellen von Daten nach der Deinstallation importiert hatte. Probieren Sie den Code aus. Hoffe, es

NB Works: READ PROVIDE UND GENEHMIGUNG AUF LAUFZEIT UND SCHREIBEN IN MANIFESTEN TOO

private void importDB() { 
    try { 
     File sd = Environment.getExternalStorageDirectory(); 
     File data = Environment.getDataDirectory(); 
     if (sd.canWrite()) { 
      String currentDBPath = DOWNLOADEDDATAPATH; //SOURCE 
      String backupDBPath = "data/" + getContext().getPackageName() + "/databases/FILENAME"; //Destination 


      File backupDB = new File(sd, currentDBPath); //SOURCE 
      File currentDB = new File(data, backupDBPath); //Destination 

      FileChannel src = new FileInputStream(backupDB).getChannel(); //SOURCE 
      FileChannel dst = new FileOutputStream(currentDB).getChannel(); //Destination 
      dst.transferFrom(src, 0, src.size()); 
      src.close(); 
      dst.close(); 


     } 
    } catch (Exception e) { 
     Log.d("test", e.toString()); 
    } 
} 
Verwandte Themen