2016-07-26 22 views
0

如何重新複製存儲在android studio項目的assets文件夾中的數據庫?如何更新資產文件夾中存儲的數據庫Android

我使用的是Android的SQLite的資產助手類

package com.acorney.migration; 

import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteQueryBuilder; 

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper; 

/** 
* Created by acorney on 25/07/2016. 
*/ 
public class databaseHelper extends SQLiteAssetHelper { 

private static final String TAG = SQLiteAssetHelper.class.getSimpleName(); 
private static final String DATABASE_NAME = "peopleDatabase.db"; 
private static final int DATABASE_VERSION = 1; 

public databaseHelper(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

而且我在MainActivity創建它的一個實例

databaseHelper dataB; 
dataB = new databaseHelper(this); 

這一點,我認爲,造成數據一個空數據庫/數據並將數據庫從資產複製到它

但是,我已經從應用程序外部(使用SQLite瀏覽器)更新數據庫並將其保存回資產文件夾。 如何將數據庫的更新複製到應用程序中?

最終,應用程序需要讀取和寫入到該數據庫 - 這樣的變化在資產文件夾

而且,當應用程序啓動時,應用程序應該只創建一個新的實例保存到數據庫資產文件夾中的數據庫。

基本上 - 我希望在資產文件夾中發生所有數據庫更改 - 這是可以完成的事情嗎?

謝謝您的幫助

+0

卸載你的應用程序並重新安裝它 – Nisarg

+0

有沒有一種方法可以通過代碼完成,以便它在每次應用程序啓動時都會發生? –

+0

不可以通過代碼應用更改 – Nisarg

回答

0

不,這是不可能的。 資產文件夾是二進制APK的一部分,在運行時無法更改。你只能在編譯時修改它。

+0

有沒有辦法強制它重新編譯? –

+0

奇怪的問題。意識到代碼已經在PC上編譯。 – greenapps

相關問題