所以这是一个问题,我抬头看着这个
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();
}
}