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;
|
r.resultTo = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean switchStackFromBg = false;
|
||||||
boolean addingToTask = false;
|
boolean addingToTask = false;
|
||||||
boolean movedHome = false;
|
boolean movedHome = false;
|
||||||
TaskRecord reuseTask = null;
|
TaskRecord reuseTask = null;
|
||||||
@@ -1486,6 +1487,11 @@ public final class ActivityStackSupervisor {
|
|||||||
}
|
}
|
||||||
options = null;
|
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
|
// If the caller has requested that the target task be
|
||||||
// reset, then do so.
|
// reset, then do so.
|
||||||
@@ -1593,6 +1599,10 @@ public final class ActivityStackSupervisor {
|
|||||||
// don't use that intent!) And for paranoia, make
|
// don't use that intent!) And for paranoia, make
|
||||||
// sure we have correctly resumed the top activity.
|
// sure we have correctly resumed the top activity.
|
||||||
if (doResume) {
|
if (doResume) {
|
||||||
|
if (switchStackFromBg) {
|
||||||
|
moveHomeStack(lastStack.isHomeStack());
|
||||||
|
targetStack = lastStack;
|
||||||
|
}
|
||||||
targetStack.resumeTopActivityLocked(null, options);
|
targetStack.resumeTopActivityLocked(null, options);
|
||||||
} else {
|
} else {
|
||||||
ActivityOptions.abort(options);
|
ActivityOptions.abort(options);
|
||||||
|
|||||||
Reference in New Issue
Block a user