diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStack.java | 16 | 
1 files changed, 11 insertions, 5 deletions
| diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 82c71e3aec37..daa38916e8fe 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -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);          }      } |