From edf32d01316bd3432c023f17747461b08ae36375 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 25 Aug 2010 13:13:36 -0700 Subject: [PATCH] Start of SharedPreferences$Editor.startCommit() No implementation yet, just the interface. Change-Id: Idf9934b445da1fb72b79f0192218b47c0a7f5a34 --- api/current.xml | 11 ++++++ core/java/android/app/ContextImpl.java | 7 +++- .../android/content/SharedPreferences.java | 37 ++++++++++++++++++- 3 files changed, 52 insertions(+), 3 deletions(-) diff --git a/api/current.xml b/api/current.xml index 38756d3858011..4b0068df8046c 100644 --- a/api/current.xml +++ b/api/current.xml @@ -45115,6 +45115,17 @@ + + Note that when two editors are modifying preferences at the same * time, the last one to call commit wins. - * + * + *

If you don't care about the return value and you're + * using this from your application's main thread, consider + * using {@link #startCommit} instead. + * * @return Returns true if the new values were successfully written * to persistent storage. */ boolean commit(); + + /** + * Commit your preferences changes back from this Editor to the + * {@link SharedPreferences} object it is editing. This atomically + * performs the requested modifications, replacing whatever is currently + * in the SharedPreferences. + * + *

Note that when two editors are modifying preferences at the same + * time, the last one to call commit wins. + * + *

Unlike {@link #commit}, which writes its preferences out + * to persistent storage synchronously, {@link #startCommit} + * commits its changes to the in-memory + * {@link SharedPreferences} immediately but starts an + * asynchronous commit to disk and you won't be notified of + * any failures. If another editor on this + * {@link SharedPreferences} does a regular {@link #commit} + * while a {@link #startCommit} is still outstanding, the + * {@link #commit} will block until all async commits are + * completed as well as the commit itself. + * + *

If you call this from an {@link android.app.Activity}, + * the base class will wait for any async commits to finish in + * its {@link android.app.Activity#onPause}.

+ * + * @return Returns true if the new values were successfully written + * to persistent storage. + */ + void startCommit(); } /**