我正在使用SharedPreferences在我的应用程序中的所有活动中存储我的数据.我可以像这样访问它:
SharedPreferences mSharedPreferences = getSharedPreferences("MyPrefs",0);
我已经实现了PreferenceActivity,因此用户可以通过它更改值,但它发生的是读取/写入数据不是“MyPrefs”,而是:
PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
这对我来说有点意外.是否可以强制PreferenceActivity处理我的“MyPrefs”偏好?在单个应用程序中有多个首选项有什么意义?谢谢.
解决方法
I get access to it like this
这没关系,只要你不打算使用PreferenceActivity.
I’ve implemented PreferenceActivity so users can change values through it
哎呀.
另外,除非你有特定的理由使用Application而不是activity / service / whatever,否则在那里摆脱getApplicationContext().只有在必要时才使用Application对象,并且您知道为什么必须这样做.
Is that possible to force PreferenceActivity to deal with my “MyPrefs” preferences?
不容易.除非你有一些特定的理由发明你自己的SharedPreferences文件,否则我会使用默认的.
And what is the point to have several preferences within single application?
您可能有一个可重用的库或组件想要在SharedPreferences中存储内容,并且可能有自己的文件,以免弄乱托管应用程序中的任何首选项.话虽如此,通常不需要多个首选项文件.