Android 确保正确回写SharedReference
我正在使用SharedReferences来持久化对象字段。举个例子:Android 确保正确回写SharedReference,android,sharedpreferences,android-file,android-framework,performance,Android,Sharedpreferences,Android File,Android Framework,Performance,我正在使用SharedReferences来持久化对象字段。举个例子: class Item { private String note; public void setNote(String newNote) { this.note = newNote; update(); } private void update() { String json = ....; // create JSON image o
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()(从而更新())
现在我有几个问题:如何验证“note”的最新版本是否已保存?最后一个调用是否可能被先前对编辑器的调用覆盖?如何最大限度地减少工作量?必须有比为100个字符的文本调用apply()100x更智能、更轻松的方法。您可以简单地使用
synchronized
它将帮助线程等待旧线程完成更新工作
private synchronized void update() {
}
您可以使用editor.commit();
此外,要检查是否保存了注释的最新版本,可以删除以前的版本,然后保存新注释。
然后根据您的需要,您可以使用Toast消息或syso。设置一个标志怎么样,如果用户没有键入超过几秒钟,则保存?保存应该几乎是即时的,但是除非你需要保存用户写的每个字符,否则就定期保存。这是一个很好的主意。谢谢我不太明白你的意思,迪帕克。当editor.putX()总是覆盖时,为什么要先删除以前的版本?我如何检查上一个版本是否已保存,并且没有被另一次写入尝试破坏?