什么是SharedPreferencesCompat?与SharedPreferences

时间:2015-11-19 08:19:49

标签: android

我想知道什么是SharedPreferencesCompat?它与SharedPreferences有什么不同?

2 个答案:

答案 0 :(得分:21)

所有...Compat类都是为了向后兼容。有些设备为旧设备带来了新功能,而这些设备本身并不具备这些功能,有些设备可帮助您开发旧设备。

在这种情况下,它提供了一种简化的方法来调用API级别9中添加的apply方法。

如果您的应用不支持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);

答案 1 :(得分:3)

源代码将回答您的问题: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.2_r1/com/android/common/SharedPreferencesCompat.java

Reflection utils在可能的情况下调用SharedPreferences $ Editor.apply,在应用时不再提交。