Merge "[ActivityManager] Avoid keeping restarting home when only home activity exists."
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user