我在我的應用程序的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