3、SharedPreferences的apply()和commit()

从sdk9开始,SharedPreferences.Editor提供了apply()方法替代commit()

commit()方法会同步地将偏好值直接写入持久化存储设备;不同的是,apply()方法会立即把修改内容提交到SharedPreferences内存缓存中,然后开始异步地将修改提交到存储设备上。apply()方法以避免在UI线程中执行向磁盘提交数据等耗时操作。

比较好的代码规范:

private void applyOrCommit(SharedPreferences.Editor editor) {
        if (editor != null) {
            try {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
                    editor.apply();
                } else {
                    editor.commit();
                }
            } catch (Throwable t) {
                editor.commit();
            }
        }
    }

当然也可以这样(个人感觉不太好!)

results matching ""

    No results matching ""