From b8bd069eacc2a888a1ff6e923094e4178ad531a3 Mon Sep 17 00:00:00 2001 From: Chong Zhang Date: Wed, 27 Apr 2016 17:29:28 -0700 Subject: [PATCH] Do not add duplicates to mWaitingVisibleActivities processStoppingActivitiesLocked() only removes one record each time, so instead of stopping on the next window visible (or next idle), it now requires two such calls to move the app to destroyed, if there's only one report, the app never gets removed. bug: 28417200 Change-Id: I7c5eac240074ed0434a72643a8d52f1726ab906c --- services/core/java/com/android/server/am/ActivityStack.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 37bd401eca57d..564cea7fc7630 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -3438,7 +3438,9 @@ final class ActivityStack { mWindowManager.prepareAppTransition(transit, false); mWindowManager.setAppVisibility(r.appToken, false); mWindowManager.executeAppTransition(); - mStackSupervisor.mWaitingVisibleActivities.add(r); + if (!mStackSupervisor.mWaitingVisibleActivities.contains(r)) { + mStackSupervisor.mWaitingVisibleActivities.add(r); + } } return finishCurrentActivityLocked(r, (r.visible || r.nowVisible) ? FINISH_AFTER_VISIBLE : FINISH_AFTER_PAUSE, oomAdj) == null;