我正在编写一个附带SQLite数据库的应用程序。
我正在逐步添加到数据库中,但是当我在Android Studio中编译代码时,应用程序没有看到最新的更新。
我找到的解决方法是更改数据库的文件名并在代码中更新它,但如果我经常更新,那将会非常无聊,我觉得必须是更好的方式。
对于它的价值,这里是相关的代码段:
public class DatabaseHelper extends SQLiteAssetHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "database5.db";
private static final String BOOKS = "books";
private static final String AUTHORS = "authors";
public DatabaseHelper (Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// etc
}
答案 0 :(得分:1)
您需要增加版本号,然后使用setForcedUpgrade()
。像这样:
private static final int DATABASE_VERSION = 2;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// call this method to force a database overwrite every time the version number increments:
//setForcedUpgrade();
}
您可以在sample project。
中找到详细信息答案 1 :(得分:0)
如果数据库尚不存在,当我在Android Studio中编译代码时,应用程序没有看到最新的更新
SQLiteAssetHelper
仅将数据库复制出资产。
我觉得必须有更好的方法
如果您未在运行时修改数据库,并且计划以新资产的形式向该数据库分发更新,则可以使用setForcedUpgrade()
中涵盖的UIImageJPEGRepresentation
。< / p>
否则,您可以在更改数据库时卸载应用程序,或在更改数据库时清除“设置”中的应用程序数据。