PreferenceManager.getDefaultSharedPreferences(context)
和
getPreferences()
似乎得到了不同的偏好。
PreferenceManager.getDefaultSharedPreferences(context).getBoolean(
"userWasAskedToEnableGps", false);
对我来说是假的,
getPreferences(MODE_PRIVATE).getBoolean("userWasAskedToEnableGps", false);
返回true。
这个偏好是由一个编辑写的,比如
Editor e = getPreferences(MODE_PRIVATE).edit();
e.putBoolean (...);
e.commit();
如何从上下文中获取活动之外的相同首选项?
最佳答案
从android github repo(1)中,我们可以看到getPreferences
除了使用当前类名调用getSharedPreferences
方法之外什么也不做。
public SharedPreferences getPreferences( int mode ) {
return getSharedPreferences( getLocalClassName(), mode );
}
没有任何东西限制其他活动/代码访问具有适当类名的共享首选项。更重要的是,我不喜欢使用
getPreferences
,因为这意味着=>永远不会更改活动名称。如果您更改了,请注意访问共享的首选项,并明确提到以前的类名(在升级之前)。