diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index b83945e950b62..2c83254e0fbb5 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -5598,10 +5598,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { mTaskSupervisor.endDeferResume(); } - if (wpc.isInstrumenting()) { - finishInstrumentationCallback.run(); - } - if (!restarting && hasVisibleActivities) { deferWindowLayout(); try { @@ -5618,6 +5614,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } } } + if (wpc.isInstrumenting()) { + finishInstrumentationCallback.run(); + } } @Override @@ -6117,6 +6116,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public boolean handleAppCrashInActivityController(String processName, int pid, String shortMsg, String longMsg, long timeMillis, String stackTrace, Runnable killCrashingAppCallback) { + Runnable targetRunnable = null; synchronized (mGlobalLock) { if (mController == null) { return false; @@ -6125,15 +6125,18 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { try { if (!mController.appCrashed(processName, pid, shortMsg, longMsg, timeMillis, stackTrace)) { - killCrashingAppCallback.run(); - return true; + targetRunnable = killCrashingAppCallback; } } catch (RemoteException e) { mController = null; Watchdog.getInstance().setActivityController(null); } - return false; } + if (targetRunnable != null) { + targetRunnable.run(); + return true; + } + return false; } @Override