确保正确回写SharedPreference

时间:2012-03-26 08:04:11

标签: android sharedpreferences android-file android-framework performance

我正在使用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个字符文本。

2 个答案:

答案 0 :(得分:1)

你可以简单地使用synchronized它将帮助线程等到旧线程完成其更新工作。

private synchronized void update() {
}

答案 1 :(得分:0)

你可以使用editor.commit(); 此外,要检查最新版本的笔记是否已保存,您可以删除以前的版本,然后保存新笔记。 然后根据您的需要,您可以使用Toast消息或syso。