diff options
| author | 2021-09-22 15:40:09 +0800 | |
|---|---|---|
| committer | 2021-09-23 16:23:47 +0800 | |
| commit | a6659239288f281e61bf5fb2d12633a1be6f54f2 (patch) | |
| tree | de64e95ef2db9578f17f6e2f784ed540391446ef | |
| parent | e8af787674674af31972e8ee9d7750edce31b843 (diff) | |
Clean up the no-history entries while the app died
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
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityTaskSupervisor.java | 2 | ||||
| -rw-r--r-- | 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 e6aa4fcccaa2..0497fb5001d4 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<ActivityRecord> 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 abe95fa80478..cfb28001758a 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<WindowContainer> { isPausingDied = true; } if (mLastPausedActivity != null && mLastPausedActivity.app == app) { - if (mLastPausedActivity.isNoHistory()) { - mTaskSupervisor.mNoHistoryActivities.remove(mLastPausedActivity); - } mLastPausedActivity = null; } return isPausingDied; |