From a6659239288f281e61bf5fb2d12633a1be6f54f2 Mon Sep 17 00:00:00 2001 From: Jeff Chang Date: Wed, 22 Sep 2021 15:40:09 +0800 Subject: [PATCH] Clean up the no-history entries while the app died MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mNoHistoryActivities, A list maintains the no-history activities. If the device goes to sleep with such activity in the paused state then save it here and finish it later if another activity replaces it. We should clean up the entries together while the app dies otherwise the items still stay in the list. Bug: 200159293 Bug: 199523354 Test: 1. start some activity with no-history and transparent property 2. adb shell am force-stop “the app” 3. adb dumpsys activity activities to check mNoHistoryActivities. Change-Id: Ib2e3f12f83d562cd25efe918eb27e25f4dc890b2 --- .../java/com/android/server/wm/ActivityTaskSupervisor.java | 2 ++ services/core/java/com/android/server/wm/TaskFragment.java | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java index e6aa4fcccaa26..0497fb5001d47 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java @@ -1940,6 +1940,7 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { void removeHistoryRecords(WindowProcessController app) { removeHistoryRecords(mStoppingActivities, app, "mStoppingActivities"); removeHistoryRecords(mFinishingActivities, app, "mFinishingActivities"); + removeHistoryRecords(mNoHistoryActivities, app, "mNoHistoryActivities"); } private void removeHistoryRecords(ArrayList list, WindowProcessController app, @@ -1977,6 +1978,7 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { mWaitingActivityLaunched.get(i).dump(pw, prefix + " "); } } + pw.println(prefix + "mNoHistoryActivities=" + mNoHistoryActivities); pw.println(); } diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java index abe95fa804781..cfb28001758a0 100644 --- a/services/core/java/com/android/server/wm/TaskFragment.java +++ b/services/core/java/com/android/server/wm/TaskFragment.java @@ -538,9 +538,6 @@ class TaskFragment extends WindowContainer { isPausingDied = true; } if (mLastPausedActivity != null && mLastPausedActivity.app == app) { - if (mLastPausedActivity.isNoHistory()) { - mTaskSupervisor.mNoHistoryActivities.remove(mLastPausedActivity); - } mLastPausedActivity = null; } return isPausingDied;