diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index e109ae558ea2b..437176a44661d 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -11371,8 +11371,17 @@ public class Intent implements Parcelable, Cloneable { */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public void prepareToLeaveProcess(Context context) { - final boolean leavingPackage = (mComponent == null) - || !Objects.equals(mComponent.getPackageName(), context.getPackageName()); + final boolean leavingPackage; + if (mComponent != null) { + leavingPackage = !Objects.equals(mComponent.getPackageName(), context.getPackageName()); + } else if (mPackage != null) { + leavingPackage = !Objects.equals(mPackage, context.getPackageName()); + } else { + // When no specific component or package has been defined, we have + // to assume that we might be routed through an intent + // disambiguation dialog which might leave our package + leavingPackage = true; + } prepareToLeaveProcess(leavingPackage); }