SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jak przywrócić bazę danych Sqlite po wykonaniu kopii zapasowej Androida?

To jest podstawowy kod przywracania działającej bazy danych (z if (dbfile .. w try ).

            private static final int BUFFERSZ = 32768;
            private byte[] buffer = new byte[BUFFERSZ];
            ........
            dbfile = new File(currentdbfilename);
            .......
            if (dbfile.delete()) {
                origdeleted = true;
            }

            FileInputStream bkp = new FileInputStream(backupfilename);
            OutputStream restore = new FileOutputStream(currentdbfilename);
            copylength = 0;
            while ((copylength = bkp.read(buffer)) > 0) {
                restore.write(buffer, 0, copylength);
            }
            restore.flush();
            restore.close();
            restoredone = true;
            bkp.close();

Główne różnice polegają na tym, że usuwam plik DB i używam zapisów, a nie transferów. Później i po pomyślnym przywróceniu używam również następujących opcji, aby ponownie uruchomić aplikację (może być przesadą, ale dla mnie działa), ponieważ możesz uzyskać nieprzewidywalne wyniki (myślę, że dostęp do części oryginalnej bazy danych można uzyskać z pamięci / danych z pamięci podręcznej):-

    Intent i = getBaseContext().getPackageManager()
                                            .getLaunchIntentForPackage( getBaseContext().getPackageName() );


    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    finish();
    startActivity(i);
    System.exit(0);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 5 sposobów na sprawdzenie typu danych kolumny w SQLite

  2. Jak zaimplementować bazę danych SQLite do przechowywania obrazu bitmapowego i tekstu?

  3. Jak uzyskać wiersz w SQLite według indeksu (nie według identyfikatora)

  4. Nie można zapobiec wyciekowi obiektu SQLiteConnection

  5. Najlepszy sposób na zapisywanie obrazów pochodzących z serwera w Androidzie