Merge "[ActivityManager] Improve task order of getRunningTasks."
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user