Android 恢复sqlite数据库后,旧文件保持活动状态??

Android 恢复sqlite数据库后,旧文件保持活动状态??,android,sqlite,backup,restore,Android,Sqlite,Backup,Restore,我的应用程序中有一个恢复选项,它读取备份文件,并将其复制到原始sqlite db上 一切似乎都很正常,只是在恢复之后,旧的db文件仍然处于活动状态。如果我完全关闭应用程序,请使用System.exit(0),它确实会加载还原的数据库,并且一切正常 应用程序似乎将旧的db文件保存在RAM中,尽管这看起来很奇怪 代码如下: File dbFile = new File(DatabaseHelper.DB_PATH + DatabaseHelper.DB_NAME);

我的应用程序中有一个恢复选项,它读取备份文件,并将其复制到原始sqlite db上

一切似乎都很正常,只是在恢复之后,旧的db文件仍然处于活动状态。如果我完全关闭应用程序,请使用
System.exit(0),它确实会加载还原的数据库,并且一切正常

应用程序似乎将旧的db文件保存在RAM中,尽管这看起来很奇怪

代码如下:

             File dbFile = new File(DatabaseHelper.DB_PATH + DatabaseHelper.DB_NAME);
             if (dbFile.exists()) {
                Boolean fileDeleted = dbFile.delete();
                Log.i(DatabaseHelper.LOG_TAG, "fileDeleted: " + String.valueOf(fileDeleted));
                }

             try {
                Log.i(DatabaseHelper.LOG_TAG, "myDatabase.isOpen: " + String.valueOf(dbHelper.myDataBase.isOpen()));
                dbHelper.cleanup();
                Log.i(DatabaseHelper.LOG_TAG, "myDatabase.isOpen: " + String.valueOf(dbHelper.myDataBase.isOpen()));
                Boolean newFileCreated = dbFile.createNewFile();
                Log.i(DatabaseHelper.LOG_TAG, "newFileCreated: " + String.valueOf(newFileCreated));
                FileUtil.copyFile(dbBackupFile, dbFile);
                return null;
             } catch (IOException e) {
                Log.e(DatabaseHelper.LOG_TAG, e.getMessage(), e);
                return e.getMessage();
             }
有人也有同样的经历吗

我确实检查了一些活动是否打开了数据库,但据我所知,情况并非如此。所有日志条目都显示预期/正确的值

我什么都试过了,所以任何建议/想法都非常感谢

提前谢谢

哈林茨,
Koen Hoorelbek为什么要使用
系统。退出(0)
,使用
finish()
。这将
finish()。我想删除文件需要一些时间,我在模拟器上注意到了。是否从任何文件夹(原始/资产)复制数据库


我建议您在复制新旧数据库之前,先尝试
close()
releasemory()
数据库。然后将新的数据库文件重新分配给db对象。退出(0)
,使用
finish()
。这将
finish()。我想删除文件需要一些时间,我在模拟器上注意到了。是否从任何文件夹(原始/资产)复制数据库

我建议您在复制新旧数据库之前,先尝试
close()
releasemory()
数据库。然后将新的数据库文件重新分配给db对象