diff options
author | Craig Mautner <cmautner@google.com> | 2014-07-07 16:34:06 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-07-02 20:49:53 +0000 |
commit | ef2e76675a6c60a2a4764a2e19fdb2c4d9beb00e (patch) | |
tree | ee5f5cbad7d01c4bcecc397b9b6c94d22ac6f9b9 | |
parent | c66da9d606fa3091540bc4c51c2904cc949bf777 (diff) | |
parent | 3145b2490214a8feaff83950d6b903b2180aa869 (diff) | |
download | base-ef2e76675a6c60a2a4764a2e19fdb2c4d9beb00e.tar.gz |
Merge "[ActivityManager] Avoid keeping restarting home when only home activity exists."
-rwxr-xr-x | services/java/com/android/server/am/ActivityStack.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index 4d6727c84f5c..8f777f9cbfad 100755 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -3370,6 +3370,7 @@ final class ActivityStack { boolean forceStopPackageLocked(String name, boolean doit, boolean evenPersistent, int userId) { boolean didSomething = false; TaskRecord lastTask = null; + ComponentName homeActivity = null; for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities; int numActivities = activities.size(); @@ -3388,6 +3389,14 @@ final class ActivityStack { } 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; Slog.i(TAG, " Force finishing activity " + r); if (samePackage) { |