2014-10-08 76 views
1

我從Widget啓動了一個Activity和一個Service。我在「活動」和「服務」中都使用一個共享首選項。當我更新活動的首選項值時,它不會在服務中更新。請參閱代碼。SharedPreference值未更新

SharedPreferences myPref = getSharedPreferences("mPrefValue", Context.MODE_PRIVATE); 
String targetValue = myPref.getString("mPrefValue", "0"); 
System.out.println("targetValue "+targetValue); 
+0

它是'myPref'還是'preferences'? – Blackbelt 2014-10-08 14:36:05

回答

1

當您訪問共享偏好,你叫getSharedPreferences(String name, int mode);只要指定MODE_MULTI_PROCESS作爲第二個參數。

0

請再粘貼一些代碼,以便我們更好地瞭解您的問題。

你是如何填充這個SharedPreferences的?你有沒有使用.commit()方法(在添加新的首選項後)以確保您的首選項已被正確「上傳」到SharedPreferences對象?

如果是這樣,你仍然有這個問題,我認爲使用SharedPreferencesListeners可能是另一種解決方案。 看看:http://developer.android.com/reference/android/content/SharedPreferences.OnSharedPreferenceChangeListener.html

再見:)

1

不要忘記提交?

myPref.edit().putString("mPrefValue", "a value").commit();