From d5748b8facbc94d9c3b43f79bd49a1bbe8a0b6a0 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Fri, 8 May 2015 18:14:01 -0700 Subject: [PATCH] Deprecate Context.MODE_MULTI_PROCESS It has never worked the way people expect. Change-Id: I0633aacc5ed171495d9c3b51201b7ba86b666dc5 --- api/current.txt | 2 +- api/system-current.txt | 2 +- core/java/android/content/Context.java | 15 +++++++++------ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/api/current.txt b/api/current.txt index ef2c4dae52096..e86f2f7ffe8f2 100644 --- a/api/current.txt +++ b/api/current.txt @@ -7802,7 +7802,7 @@ package android.content { field public static final java.lang.String MIDI_SERVICE = "midi"; field public static final int MODE_APPEND = 32768; // 0x8000 field public static final int MODE_ENABLE_WRITE_AHEAD_LOGGING = 8; // 0x8 - field public static final int MODE_MULTI_PROCESS = 4; // 0x4 + field public static final deprecated int MODE_MULTI_PROCESS = 4; // 0x4 field public static final int MODE_PRIVATE = 0; // 0x0 field public static final deprecated int MODE_WORLD_READABLE = 1; // 0x1 field public static final deprecated int MODE_WORLD_WRITEABLE = 2; // 0x2 diff --git a/api/system-current.txt b/api/system-current.txt index 4508b20e3810e..5a121a34b89eb 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -8019,7 +8019,7 @@ package android.content { field public static final java.lang.String MIDI_SERVICE = "midi"; field public static final int MODE_APPEND = 32768; // 0x8000 field public static final int MODE_ENABLE_WRITE_AHEAD_LOGGING = 8; // 0x8 - field public static final int MODE_MULTI_PROCESS = 4; // 0x4 + field public static final deprecated int MODE_MULTI_PROCESS = 4; // 0x4 field public static final int MODE_PRIVATE = 0; // 0x0 field public static final deprecated int MODE_WORLD_READABLE = 1; // 0x1 field public static final deprecated int MODE_WORLD_WRITEABLE = 2; // 0x2 diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 8687c6b02c1bd..17f946ba582f3 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -134,7 +134,15 @@ public abstract class Context { * explicitly set if desired. * * @see #getSharedPreferences + * + * @deprecated MODE_MULTI_PROCESS does not work reliably in + * some versions of Android, and furthermore does not provide any + * mechanism for reconciling concurrent modifications across + * processes. Applications should not attempt to use it. Instead, + * they should use an explicit cross-process data management + * approach such as {@link android.content.ContentProvider ContentProvider}. */ + @Deprecated public static final int MODE_MULTI_PROCESS = 0x0004; /** @@ -604,11 +612,7 @@ public abstract class Context { * editor (SharedPreferences.edit()) and then commit changes (Editor.commit()). * @param mode Operating mode. Use 0 or {@link #MODE_PRIVATE} for the * default operation, {@link #MODE_WORLD_READABLE} - * and {@link #MODE_WORLD_WRITEABLE} to control permissions. The bit - * {@link #MODE_MULTI_PROCESS} can also be used if multiple processes - * are mutating the same SharedPreferences file. {@link #MODE_MULTI_PROCESS} - * is always on in apps targeting Gingerbread (Android 2.3) and below, and - * off by default in later versions. + * and {@link #MODE_WORLD_WRITEABLE} to control permissions. * * @return The single {@link SharedPreferences} instance that can be used * to retrieve and modify the preference values. @@ -616,7 +620,6 @@ public abstract class Context { * @see #MODE_PRIVATE * @see #MODE_WORLD_READABLE * @see #MODE_WORLD_WRITEABLE - * @see #MODE_MULTI_PROCESS */ public abstract SharedPreferences getSharedPreferences(String name, int mode);