2013-10-08 48 views
3

我查找了一個解決方案,但獲得SharedPreferences和SQLite數據庫的解決方案。我必須存儲一個URL,我的Android應用程序將獲取一些數據。我喜歡將其保持爲可配置狀態,以防萬一我可以更改URL並將該應用程序與另一組數據一起使用。存儲靜態配置數據

如果我使用的strings.xml,我需要重複的情況下,我加入了支持其他語言一樣嗎?

對於SharedPreferences存儲,我需要直到安裝該應用程序,以便能夠將它保存在那裏它存儲在某處。

使用一個SQLite數據庫,這似乎太牽強?

我認爲基本的事情是將其存儲在一個常量類,但我不知道這是否是正確的做法。

有人可以提出更好的解決方案嗎?

+0

使用JSON的輕,快速和複雜的免費 –

+0

我會使用string.xml ..只是不添加字符串在其他語言的字符串 – stinepike

+0

@StinePike,不會抱怨字符串資源從其他語言丟失,我還說fr_fr/strings.xml? – midhunhk

回答

1

你不表明URL應保持私人的。所以,你可能會忽視這個明顯的。爲什麼不簡單地創建隨應用程序一起安裝的「配置」文件?這可以通過遵循方法here來實現。安裝完成後,應用程序可以簡單地讀取並進行相應處理。

+0

是的,該URL不必是私人的。我想要的只是將這些獨立於語言的靜態配置數據保存在一個地方,而不是在任何Constants類中。 – midhunhk

0

我會在常量中存儲URL。除非你需要在發佈之間進行更改。 如果你想存儲它在XML中,然後把它放到donottranslate.xml,這樣Lint不會抱怨。

1

在我們的應用程序,我們存儲在AndroidManifest.xml所有靜態配置的元數據屬性。

到文檔的鏈接可以解釋它比我能更好:

http://developer.android.com/guide/topics/manifest/meta-data-element.html

基本上是:

<meta-data android:name="api.url" android:value="http://api.some-api.com"/> 

然後假設的元數據在應用層面上,你可以得到它使用:

 Bundle data = context.getPackageManager().getApplicationInfo(
      context.getPackageName(), 
      PackageManager.GET_META_DATA).metaData; 

     String apiUrl = data.getString("api.url"); 
+0

如果這是你想保持私有的東西,不要遵循這個方法,因爲它是可訪問的爲所有其他應用程序,更多信息: https://stackoverflow.com/a/10352713 – moxi