diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index 950d494e81eef..c14e54ef586a2 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -1660,14 +1660,17 @@ class ActivityStarter { transitionController.collect(r); try { mService.deferWindowLayout(); - Trace.traceBegin(Trace.TRACE_TAG_WINDOW_MANAGER, "startActivityInner"); - result = startActivityInner(r, sourceRecord, voiceSession, voiceInteractor, - startFlags, doResume, options, inTask, inTaskFragment, restrictedBgActivity, - intentGrants); + try { + Trace.traceBegin(Trace.TRACE_TAG_WINDOW_MANAGER, "startActivityInner"); + result = startActivityInner(r, sourceRecord, voiceSession, voiceInteractor, + startFlags, doResume, options, inTask, inTaskFragment, restrictedBgActivity, + intentGrants); + } finally { + Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER); + startedActivityRootTask = handleStartResult(r, options, result, newTransition, + remoteTransition); + } } finally { - Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER); - startedActivityRootTask = handleStartResult(r, options, result, newTransition, - remoteTransition); mService.continueWindowLayout(); } postStartActivityProcessing(r, result, startedActivityRootTask); diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index f16305026554c..d8404a79e7945 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -229,7 +229,9 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe if (restoreBelow != null) { final ChangeInfo info = mChanges.get(restoreBelow); - info.mFlags |= ChangeInfo.FLAG_ABOVE_TRANSIENT_LAUNCH; + if (info != null) { + info.mFlags |= ChangeInfo.FLAG_ABOVE_TRANSIENT_LAUNCH; + } } ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Transition %d: Set %s as " + "transient-launch", mSyncId, activity);