我想知道什么是SharedPreferencesCompat?它与SharedPreferences有什么不同?
发布于 2015-11-19 16:29:24
所有的...Compat
类都是为了向后兼容。有些为没有原生功能的旧设备带来了新功能,有些则在其他方面对旧设备的开发有所帮助。
在本例中,它提供了一种调用apply
方法的简化方法,该方法是在API level 9中添加的。
如果你的应用程序不支持早于9的版本,你就不需要这个类。
如果您支持较旧的设备并执行以下操作
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("key","val");
editor.apply();
您将得到一个错误,因为该方法并不是在您支持的所有设备上都存在。解决这个问题会变得很难看。除非你使用SharedPreferencesCompat
...
editor.putString("key", "val");
SharedPreferencesCompat.EditorCompat.getInstance().apply(editor);
发布于 2015-11-19 16:29:45
反射工具在可能的情况下调用SharedPreferences$Editor.apply,当apply不可用时回退到提交。
https://stackoverflow.com/questions/33798506
复制相似问题