我正在使用此功能将数据库文件存储为备份文件:
private void saveDATABASE() {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "//data//app.myapp.com.myapplication//databases//" + Database.DATABASE_NAME;
String backupDBPath = "backup_" + String.valueOf(System.currentTimeMillis()) + ".db";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
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(getActivity(), "OK", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity(), "WARNING", Toast.LENGTH_LONG).show();
}
}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getActivity(), "ERROR", Toast.LENGTH_LONG).show();
}
}
在android 4.4.2上,它可以成功工作(数据库文件将与所有保存的数据一起创建)。但是在android 9上它只能部分工作-创建了数据库文件,但它不包含该文件中的最新数据库数据(例如,该文件中缺少一些最新条目,但它们在我的应用程序中-看起来像已备份文件是数据库的旧版本)。请为新版本的android将此代码进行任何改进吗?预先感谢