可能是一个愚蠢的问题,但我使用的是一个有几个不同名字的共享参考" MyPrefs1"," MyPrefs2"等
我认为这仅限于我的应用。即如果其他某个应用尝试使用相同的名称,则不会覆盖我的值
我非常相信我的理解是正确的,但名称" SharedPreferences"似乎表明它可以在应用程序之间共享? (它是否用于活动之间的共享?)
答案 0 :(得分:4)
这是正确的,SharedPreferences存储在应用程序的私人文件夹中(确切地说,存储在/ data / data /您的包名/ shared_prefs中)。
你可以给他们任何你想要的名字。
答案 1 :(得分:2)
extension AppDelegate: SKPaymentTransactionObserver {
// the `SKPaymentTransactionObserver` methods here
}
表示可以在应用程序的不同组件之间共享的首选项。您在应用程序中创建的SharedPreferences
永远不会与其他应用程序一起公开。
无论您使用SharedPreferences
还是PreferenceManager.getDefaultSharedPreferences()
,这两者都只适用于您的应用。
注意 - Context.getSharedPreferences("file_name", Context.MODE_PRIVATE);
或SharedPreferences
不会向其他应用程序公开。
答案 2 :(得分:1)
尽管您正确假设未在应用程序之间共享SharedPreferences,因此名称不会冲突,但是(将特定名称添加到共享的首选项文件中)是一种很好的做法(将应用程序包添加为前缀)。如果您有不同的口味并且不想覆盖其中的首选项,这将很有用,尤其是在测试应用程序并且不想破坏共享首选项文件的原始值时。