应用程序不显示SQLite资产助手的数据库更改

uinbv5nw  于 2023-01-05  发布在  SQLite
关注(0)|答案(3)|浏览(146)

我正在编写一个应用程序,它与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

}
nbnkbykc

nbnkbykc1#

您需要递增版本号,然后使用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

tez616oj

tez616oj2#

当我在Android Studio中编译代码时,应用看不到最新更新
SQLiteAssetHelper仅在数据库尚不存在时才从资产中复制数据库。
我觉得一定有更好的办法
如果您不在运行时修改数据库,并且计划以新资产的形式将更新分发到该数据库,则可以使用setForcedUpgrade(),如文档中所述。
否则,您可以在更改数据库时卸载该应用,或在更改数据库时清除“设置”中的应用数据。

sauutmhj

sauutmhj3#

只需更改您的sqlite数据库文件名从资产文件夹[这里我有更改名称Quran.db到Quran1.db]
并从类,你可以访问它.[从类也我已经改变了Quran.db古兰经1.db]
这个方法对我很有效。

相关问题