【发布时间】:2016-01-31 13:06:27
【问题描述】:
我目前正在学习“开发 Android 应用程序”Udacity 课程。在“第 3 课:新活动和意图 > 使用 SharedPreferences”部分中,讲师让我在 Android 开发者网站上挖掘如何从 SharedPreferences 获取用户首选项。但是,我发现官方文档和课程解决方案之间存在差异。
Udacity 课程的solution 说,要为PreferenceActivity 获取SharedPreferences 实例,您应该调用:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
(这里的getActivity() 就是Context,因为它在Fragment 中被调用。)
虽然 Android 开发者网站上的 the official documentation 表明您应该调用:
SharedPreferences prefs = getActivity().getPreferences(Context.MODE_PRIVATE)
那么PreferenceManager.getDefaultSharedPreferences(Context context) 和Activity.getPreferences(int mode) 有什么区别呢?
请注意:这个问题不涉及任何关于getSharedPreferences() 的内容,它需要文件名。这是关于getPreferences() 和getDefaultSharedPreferences() 之间的区别。
提前致谢。
【问题讨论】:
标签: android android-preferences android-sharedpreferences