讓我們想象一下,如果首選項選項設置爲true,我們只想執行某些操作。這可能是形勢的類圖:Android的最佳設計實踐與Java不同?
在getDoSomethingOptionValue()
PreferencesActivity
實現可能如下:
public boolean getDoSomethingOptionValue(){
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getActivity()
return settings.getString("doSomethingOptionValue", "false");
}
在Java(我的意思是,沒有Android),MainActivity
應該使用get方法從PreferencesActivity
來獲取值:
if (PreferencesActivity.getDoSomethingOptionValue()){
// TODO
executeSomething()
}
但它實際上是更復雜的Android(我喜歡this tutorial about how to communicate two running activities)進行交流活動。 因此,我被邀請直接從MainActivity
檢查首選項。代碼會更簡單,更有效率。它可能是這樣的:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getActivity()
if (settings.getString("doSomethingOptionValue", "false"){
// TODO
executeSomething()
}
哪一個是Android的推薦做法?
PreferencesActivity.getDoSomethingOptionValue()將無法正常工作的方法也不是一成不變的 – s1m3n
我們通過使用PreferenceHandler,負責所有共享的喜好和所有設置解決了這一/獲取越過它,並可以通過訪問應用程序在應用程序中無處不在 – for3st