asc*_*sco 2 android android-preferences sharedpreferences
PreferenceManager.getDefaultSharedPreferences(context)
Run Code Online (Sandbox Code Playgroud)
和
getPreferences()
Run Code Online (Sandbox Code Playgroud)
似乎检索不同的首选项.
PreferenceManager.getDefaultSharedPreferences(context).getBoolean(
"userWasAskedToEnableGps", false);
Run Code Online (Sandbox Code Playgroud)
对我来说,返回false,
getPreferences(MODE_PRIVATE).getBoolean("userWasAskedToEnableGps", false);
Run Code Online (Sandbox Code Playgroud)
返回true.
Preference是用编辑器编写的
Editor e = getPreferences(MODE_PRIVATE).edit();
e.putBoolean (...);
e.commit();
Run Code Online (Sandbox Code Playgroud)
如何在Context中的Activity之外获得相同的Preferences?
从android github repo(1),我们可以看到getPreferences除了getSharedPreferences使用当前类名调用方法之外什么都不做.
public SharedPreferences getPreferences( int mode ) {
return getSharedPreferences( getLocalClassName(), mode );
}
Run Code Online (Sandbox Code Playgroud)
没有什么限制其他活动/代码使用适当的类名访问共享首选项.更重要的是,我不想使用getPreferences,因为这意味着=>永远不会改变活动名称.如果更改,则使用明确提及的早期类名称(升级前)来处理访问共享首选项.
| 归档时间: |
|
| 查看次数: |
16438 次 |
| 最近记录: |