我正在使用SharedPreferences来持久保存Object字段。举个例子:
class Item {
private String note;
public void setNote(String newNote) {
this.note = newNote;
update();
}
private void update() {
String json = ....; // create JSON image of the object
Editor editor = App.getAppPrefs().edit(); // Load SharedPreferences editor
editor.putString("exampleItem", json);
editor.apply();
}
每次更改“Note”-EditText时,都会调用setNote()(以及update())。
现在我有几个问题:如何验证最新版本的“注释”是否已保存?之前调用编辑器是否有可能覆盖最后一次调用?如何最大限度地减少工作量?必须有一些更聪明,更轻松的方式,而不是调用apply()100x作为100个字符文本。
答案 0 :(得分:1)
你可以简单地使用synchronized
它将帮助线程等到旧线程完成其更新工作。
private synchronized void update() {
}
答案 1 :(得分:0)
你可以使用editor.commit(); 此外,要检查最新版本的笔记是否已保存,您可以删除以前的版本,然后保存新笔记。 然后根据您的需要,您可以使用Toast消息或syso。