diff options
author | Dianne Hackborn <hackbod@google.com> | 2012-06-28 15:33:53 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-06-28 15:33:53 -0700 |
commit | cfb0f40903cf2180ce0947cdd965e2f5b90b48bb (patch) | |
tree | aa354cc9c8e9d2aaf99aaadcac40cbaeb93ea17b /services | |
parent | 98fd6405aec16c6062f562bf6e7c5f2d50da5d60 (diff) | |
parent | 45a25bcfc9af74bc4275cc710347304e581f3c51 (diff) | |
download | frameworks_base-cfb0f40903cf2180ce0947cdd965e2f5b90b48bb.zip frameworks_base-cfb0f40903cf2180ce0947cdd965e2f5b90b48bb.tar.gz frameworks_base-cfb0f40903cf2180ce0947cdd965e2f5b90b48bb.tar.bz2 |
Merge "Fix issue #6745498: Cannot view consecutive event details from agenda view" into jb-dev
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/am/ActivityManagerService.java | 19 | ||||
-rwxr-xr-x | services/java/com/android/server/am/ActivityStack.java | 5 |
2 files changed, 18 insertions, 6 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index f482552..95d3c41 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -5704,12 +5704,19 @@ public final class ActivityManagerService extends ActivityManagerNative if (killProcesses) { // Find any running processes associated with this app. + final String pkg = component.getPackageName(); ArrayList<ProcessRecord> procs = new ArrayList<ProcessRecord>(); - SparseArray<ProcessRecord> appProcs - = mProcessNames.getMap().get(component.getPackageName()); - if (appProcs != null) { - for (int i=0; i<appProcs.size(); i++) { - procs.add(appProcs.valueAt(i)); + HashMap<String, SparseArray<ProcessRecord>> pmap = mProcessNames.getMap(); + for (SparseArray<ProcessRecord> uids : pmap.values()) { + for (int i=0; i<uids.size(); i++) { + ProcessRecord proc = uids.valueAt(i); + if (proc.userId != tr.userId) { + continue; + } + if (!proc.pkgList.contains(pkg)) { + continue; + } + procs.add(proc); } } @@ -5720,6 +5727,7 @@ public final class ActivityManagerService extends ActivityManagerNative Slog.i(TAG, "Killing " + pr.toShortString() + ": remove task"); EventLog.writeEvent(EventLogTags.AM_KILL, pr.pid, pr.processName, pr.setAdj, "remove task"); + pr.killedBackground = true; Process.killProcessQuiet(pr.pid); } else { pr.waitingToKill = "remove task"; @@ -14634,6 +14642,7 @@ public final class ActivityManagerService extends ActivityManagerNative Slog.i(TAG, "Killing " + app.toShortString() + ": " + app.waitingToKill); EventLog.writeEvent(EventLogTags.AM_KILL, app.pid, app.processName, app.setAdj, app.waitingToKill); + app.killedBackground = true; Process.killProcessQuiet(app.pid); success = false; } else { diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index b276494..9171e47 100755 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -2347,6 +2347,9 @@ final class ActivityStack { while (i > 0) { i--; ActivityRecord candidate = mHistory.get(i); + if (candidate.finishing) { + continue; + } if (candidate.task.taskId != task) { break; } @@ -4057,7 +4060,7 @@ final class ActivityStack { int index = indexOfActivityLocked(r); if (index >= 0) { if (r.state == ActivityState.DESTROYING) { - cleanUpActivityLocked(r, true, true); + cleanUpActivityLocked(r, true, false); removeActivityFromHistoryLocked(r); } } |