diff options
Diffstat (limited to 'core/java/android/app')
-rw-r--r-- | core/java/android/app/ActivityThread.java | 26 | ||||
-rw-r--r-- | core/java/android/app/AppGlobals.java | 7 |
2 files changed, 17 insertions, 16 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index b409f2f..bd83762 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -200,6 +200,8 @@ public final class ActivityThread { static Handler sMainThreadHandler; // set once in main() + Bundle mCoreSettings = null; + private static final class ActivityClientRecord { IBinder token; int ident; @@ -354,7 +356,6 @@ public final class ActivityThread { boolean restrictedBackupMode; Configuration config; boolean handlingProfiling; - Bundle coreSettings; public String toString() { return "AppBindData{appInfo=" + appInfo + "}"; } @@ -559,6 +560,8 @@ public final class ActivityThread { ServiceManager.initServiceCache(services); } + setCoreSettings(coreSettings); + AppBindData data = new AppBindData(); data.processName = processName; data.appInfo = appInfo; @@ -570,7 +573,6 @@ public final class ActivityThread { data.debugMode = debugMode; data.restrictedBackupMode = isRestrictedBackupMode; data.config = config; - data.coreSettings = coreSettings; queueOrSendMessage(H.BIND_APPLICATION, data); } @@ -898,8 +900,8 @@ public final class ActivityThread { pw.println(String.format(format, objs)); } - public void setCoreSettings(Bundle settings) { - queueOrSendMessage(H.SET_CORE_SETTINGS, settings); + public void setCoreSettings(Bundle coreSettings) { + queueOrSendMessage(H.SET_CORE_SETTINGS, coreSettings); } } @@ -2720,10 +2722,8 @@ public final class ActivityThread { } private void handleSetCoreSettings(Bundle coreSettings) { - if (mBoundApplication != null) { - synchronized (mBoundApplication) { - mBoundApplication.coreSettings = coreSettings; - } + synchronized (mPackages) { + mCoreSettings = coreSettings; } } @@ -3990,13 +3990,9 @@ public final class ActivityThread { } public int getIntCoreSetting(String key, int defaultValue) { - if (mBoundApplication == null) { - return defaultValue; - } - synchronized (mBoundApplication) { - Bundle coreSettings = mBoundApplication.coreSettings; - if (coreSettings != null) { - return coreSettings.getInt(key, defaultValue); + synchronized (mPackages) { + if (mCoreSettings != null) { + return mCoreSettings.getInt(key, defaultValue); } else { return defaultValue; } diff --git a/core/java/android/app/AppGlobals.java b/core/java/android/app/AppGlobals.java index 55515b8..2b6db8b 100644 --- a/core/java/android/app/AppGlobals.java +++ b/core/java/android/app/AppGlobals.java @@ -55,6 +55,11 @@ public class AppGlobals { * @return The core settings. */ public static int getIntCoreSetting(String key, int defaultValue) { - return ActivityThread.currentActivityThread().getIntCoreSetting(key, defaultValue); + ActivityThread currentActivityThread = ActivityThread.currentActivityThread(); + if (currentActivityThread != null) { + return currentActivityThread.getIntCoreSetting(key, defaultValue); + } else { + return defaultValue; + } } } |