diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 81fc5dfc56a63..9b13d256aea68 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -4970,7 +4970,8 @@ public final class ActivityThread extends ClientTransactionHandler { private void relaunchAllActivities(boolean preserveWindows) { for (Map.Entry entry : mActivities.entrySet()) { final ActivityClientRecord r = entry.getValue(); - if (!r.activity.mFinished) { + // Schedule relaunch the activity if it is not a local object or finishing. + if (!r.activity.mFinished && !(r.token instanceof Binder)) { if (preserveWindows && r.window != null) { r.mPreserveWindow = true; } diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 57e696320ec8f..4e1d789bebd81 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -4006,8 +4006,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLock) { ActivityRecord record = ActivityRecord.isInStackLocked(token); if (record == null) { - throw new IllegalArgumentException("reportSizeConfigurations: ActivityRecord not " - + "found for: " + token); + return; } record.setSizeConfigurations(horizontalSizeConfiguration, verticalSizeConfigurations, smallestSizeConfigurations);