Merge "[ActivityManager] Avoid keeping restarting home when only home activity exists."

This commit is contained in:
Craig Mautner
2014-07-07 16:34:06 +00:00
committed by Gerrit Code Review

View File

@@ -3370,6 +3370,7 @@ final class ActivityStack {
boolean forceStopPackageLocked(String name, boolean doit, boolean evenPersistent, int userId) { boolean forceStopPackageLocked(String name, boolean doit, boolean evenPersistent, int userId) {
boolean didSomething = false; boolean didSomething = false;
TaskRecord lastTask = null; TaskRecord lastTask = null;
ComponentName homeActivity = null;
for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities;
int numActivities = activities.size(); int numActivities = activities.size();
@@ -3388,6 +3389,14 @@ final class ActivityStack {
} }
return true; return true;
} }
if (r.isHomeActivity()) {
if (homeActivity != null && homeActivity.equals(r.realActivity)) {
Slog.i(TAG, "Skip force-stop again " + r);
continue;
} else {
homeActivity = r.realActivity;
}
}
didSomething = true; didSomething = true;
Slog.i(TAG, " Force finishing activity " + r); Slog.i(TAG, " Force finishing activity " + r);
if (samePackage) { if (samePackage) {