@@ -5704,12 +5704,19 @@ private void cleanUpRemovedTaskLocked(TaskRecord tr, int flags) {
57045704
57055705 if (killProcesses) {
57065706 // Find any running processes associated with this app.
5707+ final String pkg = component.getPackageName();
57075708 ArrayList<ProcessRecord> procs = new ArrayList<ProcessRecord>();
5708- SparseArray<ProcessRecord> appProcs
5709- = mProcessNames.getMap().get(component.getPackageName());
5710- if (appProcs != null) {
5711- for (int i=0; i<appProcs.size(); i++) {
5712- procs.add(appProcs.valueAt(i));
5709+ HashMap<String, SparseArray<ProcessRecord>> pmap = mProcessNames.getMap();
5710+ for (SparseArray<ProcessRecord> uids : pmap.values()) {
5711+ for (int i=0; i<uids.size(); i++) {
5712+ ProcessRecord proc = uids.valueAt(i);
5713+ if (proc.userId != tr.userId) {
5714+ continue;
5715+ }
5716+ if (!proc.pkgList.contains(pkg)) {
5717+ continue;
5718+ }
5719+ procs.add(proc);
57135720 }
57145721 }
57155722
@@ -5720,6 +5727,7 @@ private void cleanUpRemovedTaskLocked(TaskRecord tr, int flags) {
57205727 Slog.i(TAG, "Killing " + pr.toShortString() + ": remove task");
57215728 EventLog.writeEvent(EventLogTags.AM_KILL, pr.pid,
57225729 pr.processName, pr.setAdj, "remove task");
5730+ pr.killedBackground = true;
57235731 Process.killProcessQuiet(pr.pid);
57245732 } else {
57255733 pr.waitingToKill = "remove task";
@@ -14634,6 +14642,7 @@ private final boolean updateOomAdjLocked(
1463414642 Slog.i(TAG, "Killing " + app.toShortString() + ": " + app.waitingToKill);
1463514643 EventLog.writeEvent(EventLogTags.AM_KILL, app.pid,
1463614644 app.processName, app.setAdj, app.waitingToKill);
14645+ app.killedBackground = true;
1463714646 Process.killProcessQuiet(app.pid);
1463814647 success = false;
1463914648 } else {
0 commit comments