diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 74f799060b46a..4a134eef8532d 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -16353,6 +16353,7 @@ public class ActivityManagerService extends IActivityManager.Stub // TODO(b/111541062): This method is only used for updating OOM adjustments. We need to update // the logic there and in mBatteryStatsService to make them aware of multiple resumed activities + @Nullable ProcessRecord getTopApp() { final WindowProcessController wpc = mAtmInternal != null ? mAtmInternal.getTopApp() : null; final ProcessRecord r = wpc != null ? (ProcessRecord) wpc.mOwner : null; diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java index aa9d4ccc61abb..72d6ca9fd7619 100644 --- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java +++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java @@ -3531,9 +3531,14 @@ final class ActivityManagerShellCommand extends ShellCommand { if (foregroundActivities) { try { int prcState = mIam.getUidProcessState(uid, "android"); - int topPid = mInternal.getTopApp().getPid(); - if (prcState == ProcessStateEnum.TOP && topPid == pid) { - mPw.println("New foreground process: " + pid); + ProcessRecord topApp = mInternal.getTopApp(); + if (topApp == null) { + mPw.println("No top app found"); + } else { + int topPid = topApp.getPid(); + if (prcState == ProcessStateEnum.TOP && topPid == pid) { + mPw.println("New foreground process: " + pid); + } } mPw.flush(); } catch (RemoteException e) {