Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +17 −1 Original line number Diff line number Diff line Loading @@ -7175,7 +7175,23 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { @Override public void onHandleAppCrash(@NonNull WindowProcessController wpc) { synchronized (mGlobalLock) { wpc.handleAppCrash(); final boolean hasVisibleActivity; mTaskSupervisor.beginDeferResume(); try { hasVisibleActivity = wpc.handleAppCrash(); } finally { mTaskSupervisor.endDeferResume(); } if (hasVisibleActivity) { deferWindowLayout(); try { mRootWindowContainer.ensureVisibilityOnVisibleActivityDiedOrCrashed( "onHandleAppCrash"); } finally { continueWindowLayout(); } } } } Loading services/core/java/com/android/server/wm/WindowProcessController.java +8 −3 Original line number Diff line number Diff line Loading @@ -465,17 +465,22 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio mCrashing = crashing; } void handleAppCrash() { boolean handleAppCrash() { boolean hasVisibleActivity = false; ArrayList<ActivityRecord> activities = new ArrayList<>(mActivities); for (int i = activities.size() - 1; i >= 0; --i) { final ActivityRecord r = activities.get(i); Slog.w(TAG, " Force finishing activity " + r.mActivityComponent.flattenToShortString()); r.detachFromProcess(); if (r.isVisibleRequested()) { hasVisibleActivity = true; r.mDisplayContent.requestTransitionAndLegacyPrepare(TRANSIT_CLOSE, TRANSIT_FLAG_APP_CRASHED); } r.destroyIfPossible("handleAppCrashed"); } return hasVisibleActivity; } boolean isCrashing() { Loading Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +17 −1 Original line number Diff line number Diff line Loading @@ -7175,7 +7175,23 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { @Override public void onHandleAppCrash(@NonNull WindowProcessController wpc) { synchronized (mGlobalLock) { wpc.handleAppCrash(); final boolean hasVisibleActivity; mTaskSupervisor.beginDeferResume(); try { hasVisibleActivity = wpc.handleAppCrash(); } finally { mTaskSupervisor.endDeferResume(); } if (hasVisibleActivity) { deferWindowLayout(); try { mRootWindowContainer.ensureVisibilityOnVisibleActivityDiedOrCrashed( "onHandleAppCrash"); } finally { continueWindowLayout(); } } } } Loading
services/core/java/com/android/server/wm/WindowProcessController.java +8 −3 Original line number Diff line number Diff line Loading @@ -465,17 +465,22 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio mCrashing = crashing; } void handleAppCrash() { boolean handleAppCrash() { boolean hasVisibleActivity = false; ArrayList<ActivityRecord> activities = new ArrayList<>(mActivities); for (int i = activities.size() - 1; i >= 0; --i) { final ActivityRecord r = activities.get(i); Slog.w(TAG, " Force finishing activity " + r.mActivityComponent.flattenToShortString()); r.detachFromProcess(); if (r.isVisibleRequested()) { hasVisibleActivity = true; r.mDisplayContent.requestTransitionAndLegacyPrepare(TRANSIT_CLOSE, TRANSIT_FLAG_APP_CRASHED); } r.destroyIfPossible("handleAppCrashed"); } return hasVisibleActivity; } boolean isCrashing() { Loading