SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Cách khôi phục cơ sở dữ liệu Sqlite sau khi sao lưu Android

Đây là mã cốt lõi của khôi phục DB đang hoạt động (từ if (dbfile .. trong một 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();

Sự khác biệt chính là tôi xóa tệp DB và sử dụng ghi thay vì chuyển. Sau đó và khi khôi phục thành công, tôi cũng sử dụng cách sau để khởi động lại Ứng dụng (có thể quá mức cần thiết nhưng nó phù hợp với tôi) vì bạn có thể nhận được kết quả không thể đoán trước (tôi nghĩ rằng các phần của cơ sở dữ liệu gốc có thể được truy cập từ bộ nhớ / dữ liệu được lưu trong bộ nhớ cache):-

    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. Cập nhật đẩy Android trên Cửa hàng Play

  2. SQLite MIN

  3. Cách tốt nhất để lưu hình ảnh đến từ máy chủ trong Android

  4. Cách kích hoạt hỗ trợ khóa ngoại trong SQLite

  5. Cách lưu trữ nội dung video trong cơ sở dữ liệu SQLite (không phải đường dẫn video)