summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/ActivityTaskSupervisor.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
index 2b1cf395dcd7..9d225e1ab1f6 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
@@ -2118,8 +2118,14 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
}
void scheduleProcessStoppingAndFinishingActivitiesIfNeeded() {
- if ((!mStoppingActivities.isEmpty() || !mFinishingActivities.isEmpty())
- && !mHandler.hasMessages(PROCESS_STOPPING_AND_FINISHING_MSG)
+ if (mStoppingActivities.isEmpty() && mFinishingActivities.isEmpty()) {
+ return;
+ }
+ if (mRootWindowContainer.allResumedActivitiesIdle()) {
+ scheduleIdle();
+ return;
+ }
+ if (!mHandler.hasMessages(PROCESS_STOPPING_AND_FINISHING_MSG)
&& mRootWindowContainer.allResumedActivitiesVisible()) {
mHandler.sendEmptyMessage(PROCESS_STOPPING_AND_FINISHING_MSG);
}