1
私のアプリケーションでデータベースのバックアップとリストアを行いたいので、ユーザーがアプリケーションを削除してもう一度再インストールすると、データを回復できます。 Android Studioでこれを行う最善の方法は何ですか?データベースのバックアップと復元データベースandroidスタジオ
私のアプリケーションでデータベースのバックアップとリストアを行いたいので、ユーザーがアプリケーションを削除してもう一度再インストールすると、データを回復できます。 Android Studioでこれを行う最善の方法は何ですか?データベースのバックアップと復元データベースandroidスタジオ
Googleドライブ、ドロップボックス、1台のドライブなど、dbファイルのバックアップと復元に使用できるいくつかのタイプがあります。あなたのローカルストレージからバックアップをしたい場合は、下記のコードを試してください。
バックアップコード:
public void backUp() {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "//data//your package name//databases//dbname.db";
String backupDBPath = "dbname.db";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
Log.d("backupDB path", "" + backupDB.getAbsolutePath());
if (currentDB.exists()) {
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Toast.makeText(getApplicationContext(), "Backup is successful to SD card", Toast.LENGTH_SHORT).show();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
復元コード:
public void restore() {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "//data//your package name//databases//dbname.db";;
String backupDBPath = "dbname.db";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
if (currentDB.exists()) {
FileChannel src = new FileInputStream(backupDB).getChannel();
FileChannel dst = new FileOutputStream(currentDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Toast.makeText(getApplicationContext(), "Database Restored successfully", Toast.LENGTH_SHORT).show();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}