summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-09-09 14:53:53 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-09-09 14:53:53 -0700
commite123612c08719352d3313005d0b792f17bbe090d (patch)
tree18960bcb7fc2f865efa174eb486d5de8a4f47317
parent104f6a07c9b0613c8a8332eba91e3f93dcb6f083 (diff)
parente5ba16a7afd55e3b36d6124e9fce368bca9b7e67 (diff)
downloadframeworks_base-e123612c08719352d3313005d0b792f17bbe090d.zip
frameworks_base-e123612c08719352d3313005d0b792f17bbe090d.tar.gz
frameworks_base-e123612c08719352d3313005d0b792f17bbe090d.tar.bz2
Merge "Work on issue #5144065: Tap on Music icon from Home screen - a different app opens"
-rw-r--r--services/java/com/android/server/am/ActivityManagerService.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index d6d3b9d..41af137 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -3327,20 +3327,28 @@ public final class ActivityManagerService extends ActivityManagerNative
boolean didSomething = killPackageProcessesLocked(name, uid, -100,
callerWillRestart, false, doit, evenPersistent);
- for (i=mMainStack.mHistory.size()-1; i>=0; i--) {
+ TaskRecord lastTask = null;
+ for (i=0; i<mMainStack.mHistory.size(); i++) {
ActivityRecord r = (ActivityRecord)mMainStack.mHistory.get(i);
- if (r.packageName.equals(name)
+ final boolean samePackage = r.packageName.equals(name);
+ if ((samePackage || r.task == lastTask)
&& (r.app == null || evenPersistent || !r.app.persistent)) {
if (!doit) {
return true;
}
didSomething = true;
Slog.i(TAG, " Force finishing activity " + r);
- if (r.app != null) {
- r.app.removed = true;
+ if (samePackage) {
+ if (r.app != null) {
+ r.app.removed = true;
+ }
+ r.app = null;
+ }
+ lastTask = r.task;
+ if (r.stack.finishActivityLocked(r, i, Activity.RESULT_CANCELED,
+ null, "force-stop")) {
+ i--;
}
- r.app = null;
- r.stack.finishActivityLocked(r, i, Activity.RESULT_CANCELED, null, "uninstall");
}
}