我已经实现了一个房间数据库,它是从资源文件中分发的SQLite资产助手 https://github.com/jgilfelt/android-sqlite-asset-helper第一次启动应用程序时。
数据库包含游戏状态数据,因此如果玩家想要重新开始,我想再次从资源复制数据库文件并覆盖“本地/内部”文件。
所以我的想法是删除内部数据库文件,以便SQLiteAssetHelper
将再次从资源复制初始数据库。
谢谢你!
Kev
这是一个工作示例:
public static void deleteDatabaseFile(Context context, String databaseName) {
File databases = new File(context.getApplicationInfo().dataDir + "/databases");
File db = new File(databases, databaseName);
if (db.delete())
System.out.println("Database deleted");
else
System.out.println("Failed to delete database");
File journal = new File(databases, databaseName + "-journal");
if (journal.exists()) {
if (journal.delete())
System.out.println("Database journal deleted");
else
System.out.println("Failed to delete database journal");
}
}
但老实说,我认为在运行时删除数据库既不安全也不可靠。您必须确保没有任何东西正在使用它,并且没有与数据库的任何打开的连接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)