可以在相同的活动/片段中多次使用sharedPreferences.editor.commit()



所以这是一个问题,我抬头看着这个

http://developer.android.com/reference/android/content/sharedpreferences.editor.html#commit()

提到:"指出,当两个编辑同时修改偏好时,最后一个呼吁COMMIT WIN的偏好。"

说我的活动就是这样:

SharedPreferences.Editor editor();
    onCreate(....)
    {
       //start the instance of editor
    ......
      if(condition1)
        editor.put...
        editor.commit()
    }
    onPause()
    {
    if(condition1)
    {
      editor.commit()
    }
    }

这个可以吗?因为在我的应用程序中,我必须在线时存储用户凭据,并在录制了离线(即条件1)时记录用户ID的服务器中进行一些提交的内容。on pare是我做的地方。所以任何人都可以确认。谢谢。

** putboolean()似乎正常。这是一个巨大的代码件,所以我可能会在用户凭据逻辑的某个地方犯错。因此,我只想使用editor.commit()用法确认。*

如果您有类成员sharedPreferences.editor编辑器,那么是的,可以在整个课程中使用它而不会担心。另外,查看方法签名:

public abstract boolean commit()

您可以检查提交的结果,以确保其值已成功编写。

boolean result = editor.commit();

是的,在大多数情况下,这将在您提供的示例中起作用(按照正确的顺序工作)。如果您想绝对确保对修改都执行,则可以使它们同步。

例如:

private void someSaveMethod() {
    synchronized(this) {
        //TODO perform your retrieval of the PreferencesEditor
        editor.commit();
    }
}

最新更新