diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 98c37e65b9aca..4a687feb00d70 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -5812,15 +5812,10 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } WindowProcessController getProcessController(int pid, int uid) { - final ArrayMap> pmap = mProcessNames.getMap(); - for (int i = pmap.size()-1; i >= 0; i--) { - final SparseArray procs = pmap.valueAt(i); - for (int j = procs.size() - 1; j >= 0; j--) { - final WindowProcessController proc = procs.valueAt(j); - if (UserHandle.isApp(uid) && proc.getPid() == pid && proc.mUid == uid) { - return proc; - } - } + final WindowProcessController proc = mPidMap.get(pid); + if (proc == null) return null; + if (UserHandle.isApp(uid) && proc.mUid == uid) { + return proc; } return null; }