我在我的应用程序的src/main/assets/databases
目录中有一个数据库文件。我想下载整个数据库的新副本(不需要保留任何数据),并覆盖旧数据库。我怎样才能做到这一点SQLiteAssetHelper
?如何替换(覆盖整个文件)由SQLiteAssetHelper提供的sqlite数据库?
我的理解是,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);
}
}
我可能没有明确。我想从URL下载一个新的数据库文件(我知道该怎么做),但是一旦我有了新文件,我该如何覆盖数据库?我不想覆盖使用'assets'文件夹中已经存在的数据库。 – BLuFeNiX 2014-09-04 20:51:20
@BLuFeNiX:使用'getDatabasePath()'找出在哪里写它,并写在那里。 'SQLiteAssetHelper'与这个过程无关。 – CommonsWare 2014-09-04 20:52:45
谢谢,我会尝试。 – BLuFeNiX 2014-09-04 20:53:05