Merge "[ActivityManager] Improve task order of getRunningTasks."

This commit is contained in:
Olawale Ogunwale
2015-04-07 12:45:34 +00:00
committed by Gerrit Code Review

View File

@ -3900,16 +3900,18 @@ final class ActivityStack {
}
void getTasksLocked(List<RunningTaskInfo> list, int callingUid, boolean allowed) {
boolean focusedStack = mStackSupervisor.getFocusedStack() == this;
boolean topTask = true;
for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
final TaskRecord task = mTaskHistory.get(taskNdx);
if (task.getTopActivity() == null) {
continue;
}
ActivityRecord r = null;
ActivityRecord top = null;
int numActivities = 0;
int numRunning = 0;
final ArrayList<ActivityRecord> activities = task.mActivities;
if (activities.isEmpty()) {
continue;
}
if (!allowed && !task.isHomeTask() && task.effectiveUid != callingUid) {
continue;
}
@ -3938,14 +3940,18 @@ final class ActivityStack {
ci.baseActivity = r.intent.getComponent();
ci.topActivity = top.intent.getComponent();
ci.lastActiveTime = task.lastActiveTime;
if (focusedStack && topTask) {
// Give the latest time to ensure foreground task can be sorted
// at the first, because lastActiveTime of creating task is 0.
ci.lastActiveTime = System.currentTimeMillis();
topTask = false;
}
if (top.task != null) {
ci.description = top.task.lastDescription;
}
ci.numActivities = numActivities;
ci.numRunning = numRunning;
//System.out.println(
// "#" + maxNum + ": " + " descr=" + ci.description);
list.add(ci);
}
}