2014-10-08 56 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();