我发现Android上存储的偏好设置的名称(SharedPreferences
)有点令人困惑。它可能是有目的的,所以这些首选项共享究竟是多少?例如我不希望其他应用程序无情地访问我的应用程序的信息。
getPreferences()
的偏好与getSharedPreferences()
的偏好之间有什么区别?不同模式之间有什么区别?我应该如何选择使用哪个? (哎呀,如果我有一个多活动程序,只使用常规的getPreferences会有害吗?)
我对使用这些东西的想象仍然非常有限。
答案 0 :(得分:3)
这可能是出于某种目的而选择的,那么这些偏好究竟是如何分享的呢?
它们在您的应用程序的所有组件之间共享(例如,您的所有活动)。
e.g。我不希望其他应用程序无情地访问我的应用程序的信息。
SharedPreferences
默认为您的应用程序专用。
getPreferences()的首选项与getSharedPreferences()的首选项有什么区别,不同模式之间有什么区别?我应该如何选择使用哪个? (哎呀,如果我有一个多活动程序,只使用常规的getPreferences会有害吗?)
我不太确定你指的是什么,因为你只提供了没有类的裸方法名称。如果您打算通过首选项屏幕系统use PreferenceManager.getDefaultSharedPreferences()
收集用户的偏好值。我通常会将其用于所有事情。
答案 1 :(得分:1)
Sharedprefernce基本上是关键,带有can的值对保存在xml中,并且可由应用程序访问。您可以使用它来保存一些设置值或默认值或任何其他形式的键值对。 因此,可以在一个活动中保存一个键值对,可以在其他活动中访问。
不同的模式意味着保存的数据是否可以被其他应用程序使用。你不应该担心所有的模式。作为MODE_WORLD_READABLE&现在不推荐使用MODE_WORLD_WRITEABLE。