summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2014-07-07 16:34:06 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-07-02 20:49:53 +0000
commitef2e76675a6c60a2a4764a2e19fdb2c4d9beb00e (patch)
treeee5f5cbad7d01c4bcecc397b9b6c94d22ac6f9b9
parentc66da9d606fa3091540bc4c51c2904cc949bf777 (diff)
parent3145b2490214a8feaff83950d6b903b2180aa869 (diff)
downloadbase-ef2e76675a6c60a2a4764a2e19fdb2c4d9beb00e.tar.gz
Merge "[ActivityManager] Avoid keeping restarting home when only home activity exists."
-rwxr-xr-xservices/java/com/android/server/am/ActivityStack.java9
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) {