我的应用程序的src/main/assets/databases
目录中有一个数据库文件。我想下载整个数据库的新副本(不需要保留任何数据),并覆盖旧的副本。如何使用SQLiteAssetHelper
?
我的理解是SQLiteAssetHelper
检查数据库是否“安装”在设备上,如果没有,则将其从src/main/assets/databases
目录中取出并复制到android可以使用的位置。既然我不能修改我的应用程序的资产,那么SQLiteAssetHelper
在哪里复制数据库,以及覆盖它的正确方法是什么?
这是我的扩展SQLiteAssetHelper
,以备不时之需:
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
public class EnumDatabase extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "enums.sqlite3";
private static final int DATABASE_VERSION = 1;
public EnumDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
}
最佳答案
如何使用sqliteassethelper完成此操作?
删除旧数据库,然后在getReadableDatabase()
上调用getWriteableDatabase()
或SQLiteAssetHelper
。您可以在任何方便的deleteDatabase()
上调用Context
来删除现有的数据库。不过,一定要先关闭数据库。