Merge "Avoid creating new instance on top when started for result"
This commit is contained in:
committed by
Android (Google) Code Review
commit
ff9809d801
@@ -2031,12 +2031,12 @@ class ActivityStarter {
|
||||
*/
|
||||
private int deliverToCurrentTopIfNeeded(Task topStack, NeededUriGrants intentGrants) {
|
||||
final ActivityRecord top = topStack.topRunningNonDelayedActivityLocked(mNotTop);
|
||||
final boolean dontStart = top != null && mStartActivity.resultTo == null
|
||||
final boolean dontStart = top != null
|
||||
&& top.mActivityComponent.equals(mStartActivity.mActivityComponent)
|
||||
&& top.mUserId == mStartActivity.mUserId
|
||||
&& top.attachedToProcess()
|
||||
&& ((mLaunchFlags & FLAG_ACTIVITY_SINGLE_TOP) != 0
|
||||
|| isLaunchModeOneOf(LAUNCH_SINGLE_TOP, LAUNCH_SINGLE_TASK))
|
||||
|| LAUNCH_SINGLE_TOP == mLaunchMode)
|
||||
// This allows home activity to automatically launch on secondary task display area
|
||||
// when it was added, if home was the top activity on default task display area,
|
||||
// instead of sending new intent to the home activity on default display area.
|
||||
@@ -2057,6 +2057,13 @@ class ActivityStarter {
|
||||
return START_RETURN_INTENT_TO_CALLER;
|
||||
}
|
||||
|
||||
if (mStartActivity.resultTo != null) {
|
||||
mStartActivity.resultTo.sendResult(INVALID_UID, mStartActivity.resultWho,
|
||||
mStartActivity.requestCode, RESULT_CANCELED,
|
||||
null /* data */, null /* dataGrants */);
|
||||
mStartActivity.resultTo = null;
|
||||
}
|
||||
|
||||
deliverNewIntent(top, intentGrants);
|
||||
|
||||
// Don't use mStartActivity.task to show the toast. We're not starting a new activity but
|
||||
|
||||
Reference in New Issue
Block a user