summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2010-12-21 18:18:02 -0800
committerDianne Hackborn <hackbod@google.com>2010-12-21 18:18:02 -0800
commit88819b276b8a91943e7ff6f0509a87307562b30f (patch)
tree96459a52e94b3f59ca105c67e8f424a35890c0cc /services
parentb057c3dbe6814b4e83126deb8631ad4780ea2082 (diff)
downloadframeworks_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.java17
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--;
}