2014-10-07 87 views
1

我正在開發一個Android應用程序,並認爲使用ORM來利用一些數據庫工作,我已經看到了一些,他們都看起來很好的工作,現在我只有一個主要問題左側,我還沒有找到一種在運行時設置數據庫位置的方法。例如,我將討論一個常見的(在這種情況下,非常真實的場景),假設你的應用程序需要完全離線工作,並且用戶下載應用程序需要的數據庫,一個常見的準則是提供某種文件資源管理器,用戶可以指定數據目錄。ActiveAndroid數據庫位置動態變化

那麼,讓我們假設我使用ActiveAndroid ORM,我已經根據指南設置了一切,並且我在AndroidManifest中指定了數據庫的名稱,我甚至可以在那裏設置一個靜態路徑,比如說, 「/mnt/sdcard/data/data.db」,它會使用現有的數據庫工作,我只是還沒有找到做這樣的事情

ActiveAndroid.location = customLocation; 

的方式,其中customLocation是由用戶選擇的路徑在首選項上,即數據庫的自定義位置。

任何幫助表示讚賞。

回答

2

我發現了一個適用於我的解決方法,它沒有太複雜,但我沒有看到這個問題沒有解決。

初始化而是通過

android:name 

屬性在AndroidManifest您ActiveAndroid連接的,不指定任何名稱或元數據屬性存在,現在,官方文檔指出,您可以通過

上運行時初始化ActiveAndroid
ActiveAndroid.initialize(this) 

那麼,有一個非常方便的類叫做Builder,可以通過配置類來訪問,它是ActiveAndroid中的一個,而不是android.content.res中的一個,並且您可以指定一些Builder對象事,即

setDatabaseName(String name) 

屬性,在這裏你就可以使用你的數據庫的自定義路徑,然後初始化ActiveAndroid這樣

ActiveAndroid.initialize(builder.create()) 

其中create()方法返回一個配置對象

就是這樣!現在,無論用戶決定放置它,您都可以在ActiveAndroid中使用該預填充數據庫。