android - 每次都创建一个新的 SharedPreferences 对象来读取配置变量?

标签 android sharedpreferences

在我们想要读取配置变量的代码中的任何地方创建一个新的 SharedPreferences 对象是否可以接受?

SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(this);

我在几个方法和类中都有这样的代码,每次调用一个方法时,都会一次又一次地执行相同的代码以获取 SharedPreferences 对象的另一个实例。

我想我可以将所有这些减少到一个实例中,将 SharedPreferences 对象存储到某个类 var/field 中,然后在每个其他地方使用存储在该 var 中的对象(创建一次并使用多次)。也许我可以将它存储在专用于此目的的单独类的静态字段中,然后在所有其他类中使用它。

你有什么建议,为什么?

最佳答案

我个人不在我的任何应用程序中使用我的 SharedPreferences 的静态实例。我总是像您一样获取它 PreferenceManager.getDefaultSharedPreferences(context) 并在该特定方法中使用。

如果您在特定方法中过于频繁地访问您的首选项,也许您应该重新考虑它是否是一个好的用途。如果你经常从 prefs 获得的信息是经常需要的,为什么不将它保存在内存中并在它不存在时从 prefs 加载?我肯定会这样做。

出于好奇,如果您想查看 getSharedPreferences 方法在内部执行的示例,请查看 this .

关于android - 每次都创建一个新的 SharedPreferences 对象来读取配置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35926112/

相关文章:

android - 在 Android 中删除命名的首选项文件

android - 检查共享首选项是否为空

android - 将 'CallLog.Calls' 存储到另一个表中

android - 如何使用tensorflow读取android中的内存映射图

android - 在 gradle 中设置 applicationId 以实现组合产品 flavor

android - EGL 错误 : EGL_BAD_ALLOC in my app after Nexus 10 update to Android 4. 4

Androidx数据存储测试: Ensure that you are only creating a single instance of datastore for this file

java - 无法使用共享首选项保存游戏高分?

android - SharedPrefs 在设置 Android 应用程序的区域设置后重置

安卓运行时异常 "Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag"