Merge "[ActivityManager] Avoid improper resume top activity."
This commit is contained in:
@@ -4592,17 +4592,13 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
finishInstrumentationLocked(app, Activity.RESULT_CANCELED, info);
|
||||
}
|
||||
|
||||
if (!restarting) {
|
||||
if (!mStackSupervisor.resumeTopActivitiesLocked()) {
|
||||
// If there was nothing to resume, and we are not already
|
||||
// restarting this process, but there is a visible activity that
|
||||
// is hosted by the process... then make sure all visible
|
||||
// activities are running, taking care of restarting this
|
||||
// process.
|
||||
if (hasVisibleActivities) {
|
||||
mStackSupervisor.ensureActivitiesVisibleLocked(null, 0);
|
||||
}
|
||||
}
|
||||
if (!restarting && hasVisibleActivities && !mStackSupervisor.resumeTopActivitiesLocked()) {
|
||||
// If there was nothing to resume, and we are not already
|
||||
// restarting this process, but there is a visible activity that
|
||||
// is hosted by the process... then make sure all visible
|
||||
// activities are running, taking care of restarting this
|
||||
// process.
|
||||
mStackSupervisor.ensureActivitiesVisibleLocked(null, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3390,6 +3390,9 @@ final class ActivityStack {
|
||||
if (DEBUG_CLEANUP) Slog.v(
|
||||
TAG, "Record #" + i + " " + r + ": app=" + r.app);
|
||||
if (r.app == app) {
|
||||
if (r.visible) {
|
||||
hasVisibleActivities = true;
|
||||
}
|
||||
boolean remove;
|
||||
if ((!r.haveState && !r.stateNotNeeded) || r.finishing) {
|
||||
// Don't currently have state for the activity, or
|
||||
@@ -3431,9 +3434,6 @@ final class ActivityStack {
|
||||
// it can be restarted later when needed.
|
||||
if (localLOGV) Slog.v(
|
||||
TAG, "Keeping entry, setting app to null");
|
||||
if (r.visible) {
|
||||
hasVisibleActivities = true;
|
||||
}
|
||||
if (DEBUG_APP) Slog.v(TAG, "Clearing app during removeHistory for activity "
|
||||
+ r);
|
||||
r.app = null;
|
||||
|
||||
Reference in New Issue
Block a user