gpt4 book ai didi

安卓数据库备份

转载 作者:太空宇宙 更新时间:2023-11-03 10:44:12 25 4
gpt4 key购买 nike

几个月前,我制作了一个 Android 应用。但当时,我并不认为我需要备份我的数据库。事实是,现在我做了,但我没有实现。

现在,我是否可以在不丢失数据的情况下进行数据库备份?因为我认为如果我为我的数据库备份创建方法,当我构建应用程序时,我将丢失所有数据,因为我有这个方法:

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + POINTS_TABLE);
db.execSQL("DROP TABLE IF EXISTS " + NETWORKS_TABLE);
onCreate(db);
}

最佳答案

复制db文件到sdcard是一种备份方式

public static void copyFileInSDCard () {

try {
File sd = Environment.getExternalStorageDirectory ();
File data = Environment.getDataDirectory ();

if (sd.canWrite ()) {
String DATABASE_NAME = "YOURDBNAME";
String currentDBPath = "//data//your.package//databases//" + DATABASE_NAME;
String backupDBPath = "FILE[Name]";
File currentDB = new File (data, currentDBPath);
File backupDB = new File (sd, backupDBPath);

if (currentDB.exists ()) {
@SuppressWarnings("resource")
FileChannel src = new FileInputStream (currentDB).getChannel ();
@SuppressWarnings("resource")
FileChannel dst = new FileOutputStream (backupDB).getChannel ();
dst.transferFrom (src, 0, src.size ());
src.close ();
dst.close ();
}
}
}
catch (Exception e) {
e.printStackTrace ();
}
}

关于安卓数据库备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27524009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com