【发布时间】:2017-03-19 19:30:39
【问题描述】:
在Sharedpreferences 中存储包含太多项目的String 列表是否是个好主意?它会影响应用性能吗?
我这样做是为了存储:
public boolean saveArray(List<String> contacts) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(_context);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("Status_size", contacts.size());
for (int i = 0; i < contacts.size(); i++) {
editor.remove("Status_" + i);
editor.putString("Status_" + i, contacts.get(i));
}
return editor.commit();
}
阅读:
public void loadArray(Context context) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
_validContactsPhones.clear();
int size = sharedPreferences.getInt("Status_size", 0);
for (int i = 0; i < size; i++) {
_validContactsPhones.add(sharedPreferences.getString("Status_" + i, null));
}
}
【问题讨论】:
-
唯一的性能损失可能来自
editor.commit();。请致电editor.apply()。
标签: java android arraylist sharedpreferences