SharedPreferences名称是否必须是唯一的?

时间:2016-04-21 18:13:52

标签: android sharedpreferences

可能是一个愚蠢的问题,但我使用的是一个有几个不同名字的共享参考" MyPrefs1"," MyPrefs2"等

我认为这仅限于我的应用。即如果其他某个应用尝试使用相同的名称,则不会覆盖我的值

我非常相信我的理解是正确的,但名称" SharedPreferences"似乎表明它可以在应用程序之间共享? (它是否用于活动之间的共享?)

3 个答案:

答案 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,因此名称不会冲突,但是(将特定名称添加到共享的首选项文件中)是一种很好的做法(将应用程序包添加为前缀)。如果您有不同的口味并且不想覆盖其中的首选项,这将很有用,尤其是在测试应用程序并且不想破坏共享首选项文件的原始值时。