diff options
author | 2024-12-05 09:59:29 +0000 | |
---|---|---|
committer | 2024-12-05 09:59:29 +0000 | |
commit | 77b4da7b52fe155fcefd7733bd31f24451dc285f (patch) | |
tree | a409631796fc9f4562b34cc68d18c2b903a00fcb | |
parent | f848df33e63379ad00f5fef440ff12f1ef34e4ba (diff) | |
parent | 92c98a7d50c754a32e416356e981d7fd239455c7 (diff) |
Merge "ATMS: fix the NPE problem in case the dream activity fails to start." into main
-rw-r--r-- | services/core/java/com/android/server/wm/ActivityTaskManagerService.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index cfd5300417b4..66ed0dae53f5 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -1535,7 +1535,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { final ActivityRecord[] outActivity = new ActivityRecord[1]; - getActivityStartController().obtainStarter(intent, "dream") + final int res = getActivityStartController() + .obtainStarter(intent, "dream") .setCallingUid(callingUid) .setCallingPid(callingPid) .setCallingPackage(intent.getPackage()) @@ -1549,9 +1550,11 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { .execute(); final ActivityRecord started = outActivity[0]; - final IAppTask appTask = started == null ? null : - new AppTaskImpl(this, started.getTask().mTaskId, callingUid); - return appTask; + if (started == null || !ActivityManager.isStartResultSuccessful(res)) { + // start the dream activity failed. + return null; + } + return new AppTaskImpl(this, started.getTask().mTaskId, callingUid); } } |