diff options
author | Dianne Hackborn <hackbod@google.com> | 2010-12-21 18:18:02 -0800 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2010-12-21 18:18:02 -0800 |
commit | 88819b276b8a91943e7ff6f0509a87307562b30f (patch) | |
tree | 96459a52e94b3f59ca105c67e8f424a35890c0cc /services | |
parent | b057c3dbe6814b4e83126deb8631ad4780ea2082 (diff) | |
download | frameworks_base-88819b276b8a91943e7ff6f0509a87307562b30f.zip frameworks_base-88819b276b8a91943e7ff6f0509a87307562b30f.tar.gz frameworks_base-88819b276b8a91943e7ff6f0509a87307562b30f.tar.bz2 |
Rework how recent tasks are added.
Now recents is updated every time an activity is resumed. This
should ensure the recent list is more consistent, in the face of
pressing back or things crashing.
Change-Id: Ibf59419014e549fac55f18633185edcb5ffcaa3c
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/am/ActivityStack.java | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index 516dfa2..eee9f7e 100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -572,6 +572,9 @@ public class ActivityStack { r.stopped = false; mResumedActivity = r; r.task.touchActiveTime(); + if (mMainStack) { + mService.addRecentTaskLocked(r.task); + } completeResumeLocked(r); pauseIfSleepingLocked(); } else { @@ -1249,6 +1252,9 @@ public class ActivityStack { next.state = ActivityState.RESUMED; mResumedActivity = next; next.task.touchActiveTime(); + if (mMainStack) { + mService.addRecentTaskLocked(next.task); + } mService.updateLruProcessLocked(next.app, true, true); updateLRUListLocked(next); @@ -1638,9 +1644,6 @@ public class ActivityStack { taskTopI = -1; } replyChainEnd = -1; - if (mMainStack) { - mService.addRecentTaskLocked(target.task); - } } else if (forceReset || finishOnTaskLaunch || clearWhenTaskReset) { // If the activity should just be removed -- either @@ -2409,9 +2412,6 @@ public class ActivityStack { r.task = reuseTask; } newTask = true; - if (mMainStack) { - mService.addRecentTaskLocked(r.task); - } moveHomeToFrontFromLaunchLocked(launchFlags); } else if (sourceRecord != null) { @@ -3472,17 +3472,12 @@ public class ActivityStack { ActivityRecord r = (ActivityRecord)mHistory.get(pos); if (localLOGV) Slog.v( TAG, "At " + pos + " ckp " + r.task + ": " + r); - boolean first = true; if (r.task.taskId == task) { if (localLOGV) Slog.v(TAG, "Removing and adding at " + top); mHistory.remove(pos); mHistory.add(top, r); moved.add(0, r); top--; - if (first && mMainStack) { - mService.addRecentTaskLocked(r.task); - first = false; - } } pos--; } |