我发现 Android ( SharedPreferences
) 上存储的首选项的名称有点令人困惑。选择它可能是有目的的,那么这些偏好究竟是如何共享的?例如,我不希望其他应用程序随意访问我的应用程序信息。
首选项getPreferences()
和首选项getSharedPreferences()
有什么区别,不同模式之间有什么区别?我应该如何选择使用哪个?(哎呀,如果我有一个多活动程序,只使用常规 getPreferences 会有害吗?)
我对使用这些东西的想象力仍然非常有限。
我发现 Android ( SharedPreferences
) 上存储的首选项的名称有点令人困惑。选择它可能是有目的的,那么这些偏好究竟是如何共享的?例如,我不希望其他应用程序随意访问我的应用程序信息。
首选项getPreferences()
和首选项getSharedPreferences()
有什么区别,不同模式之间有什么区别?我应该如何选择使用哪个?(哎呀,如果我有一个多活动程序,只使用常规 getPreferences 会有害吗?)
我对使用这些东西的想象力仍然非常有限。
选择它可能是有目的的,那么这些偏好究竟是如何共享的?
它们在您的应用程序的所有组件之间共享(例如,您的所有活动)。
例如,我不希望其他应用程序随意访问我的应用程序信息。
SharedPreferences
默认情况下对您的应用程序是私有的。
getPreferences() 的首选项和 getSharedPreferences() 的首选项有什么区别,不同模式之间有什么区别?我应该如何选择使用哪个?(哎呀,如果我有一个多活动程序,只使用常规 getPreferences 会有害吗?)
我不太确定您指的是什么,因为您只提供了没有类的裸方法名称。如果您打算通过偏好屏幕系统从用户那里收集偏好值,请使用PreferenceManager.getDefaultSharedPreferences()
. 我通常将其用于所有内容。
Sharedprefernce 基本上是键值对,可以保存在 xml 中,并且可以由应用程序访问。您可以使用它来保存一些设置值或默认值或任何其他形式的键值对。所以一个键值对可以保存在一个活动中,可以在另一个活动中访问。
不同的模式意味着保存的数据是否可以被其他应用程序使用。您不必担心所有模式。由于 MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 现在已弃用。
对于差异:- getShared/get 偏好之间的差异