Merge "DO NOT MERGE - [ActivityManager] Ensure consistency behavior when a background activity brings another existed activity to front."

This commit is contained in:
Craig Mautner
2014-03-28 20:23:34 +00:00
committed by Gerrit Code Review

View File

@@ -1425,6 +1425,7 @@ public final class ActivityStackSupervisor {
r.resultTo = null;
}
boolean switchStackFromBg = false;
boolean addingToTask = false;
boolean movedHome = false;
TaskRecord reuseTask = null;
@@ -1486,6 +1487,11 @@ public final class ActivityStackSupervisor {
}
options = null;
}
} else {
switchStackFromBg = lastStack != targetStack;
if (DEBUG_TASKS) Slog.d(TAG, "Caller " + sourceRecord
+ " is not top task, it may not move " + r
+ " to front, switchStack=" + switchStackFromBg);
}
// If the caller has requested that the target task be
// reset, then do so.
@@ -1593,6 +1599,10 @@ public final class ActivityStackSupervisor {
// don't use that intent!) And for paranoia, make
// sure we have correctly resumed the top activity.
if (doResume) {
if (switchStackFromBg) {
moveHomeStack(lastStack.isHomeStack());
targetStack = lastStack;
}
targetStack.resumeTopActivityLocked(null, options);
} else {
ActivityOptions.abort(options);