Merge "DO NOT MERGE - [ActivityManager] Ensure consistency behavior when a background activity brings another existed activity to front."
This commit is contained in:
10
services/java/com/android/server/am/ActivityStackSupervisor.java
Normal file → Executable file
10
services/java/com/android/server/am/ActivityStackSupervisor.java
Normal file → Executable 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);
|
||||
|
||||
Reference in New Issue
Block a user