diff options
Diffstat (limited to 'services/java/com/android/server/am/ActivityManagerService.java')
-rw-r--r-- | services/java/com/android/server/am/ActivityManagerService.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index e6dfb7f..40417b1 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -717,6 +717,8 @@ public final class ActivityManagerService extends ActivityManagerNative final private SparseArray<HashMap<Uri, UriPermission>> mGrantedUriPermissions = new SparseArray<HashMap<Uri, UriPermission>>(); + CoreSettingsObserver mCoreSettingsObserver; + /** * Thread-local storage used to carry caller permissions over through * indirect content-provider access. @@ -3589,7 +3591,8 @@ public final class ActivityManagerService extends ActivityManagerNative app.instrumentationClass, app.instrumentationProfileFile, app.instrumentationArguments, app.instrumentationWatcher, testMode, isRestrictedBackupMode || !normalMode, - mConfiguration, getCommonServicesLocked()); + mConfiguration, getCommonServicesLocked(), + mCoreSettingsObserver.getCoreSettingsLocked()); updateLruProcessLocked(app, false, true); app.lastRequestedGc = app.lastLowMemory = SystemClock.uptimeMillis(); } catch (Exception e) { @@ -5772,6 +5775,8 @@ public final class ActivityManagerService extends ActivityManagerNative if (providers != null) { mSystemThread.installSystemProviders(providers); } + + mSelf.mCoreSettingsObserver = new CoreSettingsObserver(mSelf); } /** @@ -13030,4 +13035,17 @@ public final class ActivityManagerService extends ActivityManagerNative public void monitor() { synchronized (this) { } } + + public void onCoreSettingsChange(Bundle settings) { + for (int i = mLruProcesses.size() - 1; i >= 0; i--) { + ProcessRecord processRecord = mLruProcesses.get(i); + try { + if (processRecord.thread != null) { + processRecord.thread.setCoreSettings(settings); + } + } catch (RemoteException re) { + /* ignore */ + } + } + } } |