可能是一个愚蠢的问题,但我正在使用几个不同名称“MyPrefs1”,“MyPrefs2”等的SharedPreference。
我认为这仅限于我的应用程序。也就是说,如果其他应用程序尝试使用相同的名称,它不会覆盖我的值。
我基本上相信我的理解是正确的,但名称“SharedPreferences”似乎表明它可以在应用程序之间共享?(它是用于活动之间共享吗?)
可能是一个愚蠢的问题,但我正在使用几个不同名称“MyPrefs1”,“MyPrefs2”等的SharedPreference。
我认为这仅限于我的应用程序。也就是说,如果其他应用程序尝试使用相同的名称,它不会覆盖我的值。
我基本上相信我的理解是正确的,但名称“SharedPreferences”似乎表明它可以在应用程序之间共享?(它是用于活动之间共享吗?)
没错,SharedPreferences存储在您应用程序的私有文件夹中(确切地说,在/data/data/您的包名/shared_prefs目录下)。
您可以为SharedPreferences指定任何名称。
SharedPreferences
(共享首选项)代表应用程序内不同组件可以共享的偏好设置。您在应用程序中创建的SharedPreferences
永远不会与其他应用程序共享。
无论您是使用PreferenceManager.getDefaultSharedPreferences()
还是Context.getSharedPreferences("file_name", Context.MODE_PRIVATE);
,它们都仅限于您的应用程序。
注意 - SharedPreferences
或Preferences
不会暴露给其他应用程序。
虽然您的假设是正确的,即SharedPreferences不会在应用程序之间共享,因此名称不会冲突,但是最好(除了给共享首选项文件添加特定名称之外)加上您的应用程序包作为前缀。如果您有不同的flavor,而且不想在它们之间覆盖首选项,则这非常有用,特别是当您正在测试应用程序时,不想搞砸共享首选项文件的原始值时,这更是如此。