diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityTaskSupervisor.java | 10 |
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); } |