Dela via


ISharedPreferencesEditor.Apply Method

Definition

Commit your preferences changes back from this Editor to the SharedPreferences object it is editing.

[Android.Runtime.Register("apply", "()V", "GetApplyHandler:Android.Content.ISharedPreferencesEditorInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public void Apply ();
[<Android.Runtime.Register("apply", "()V", "GetApplyHandler:Android.Content.ISharedPreferencesEditorInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Apply : unit -> unit
Attributes

Remarks

Commit your preferences changes back from this Editor to the 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 apply wins.

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

As SharedPreferences instances are singletons within a process, it's safe to replace any instance of #commit with #apply if you were already ignoring the return value.

You don't need to worry about Android component lifecycles and their interaction with apply() writing to disk. The framework makes sure in-flight disk writes from apply() complete before switching states.

<p class='note'>The SharedPreferences.Editor interface isn't expected to be implemented directly. However, if you previously did implement it and are now getting errors about missing apply(), you can simply call #commit from apply().

Java documentation for android.content.SharedPreferences.Editor.apply().

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Applies to