summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@android.com>2011-08-16 19:29:25 -0700
committerAndroid Code Review <code-review@android.com>2011-08-16 19:29:25 -0700
commitbaaf3ce6385da0f9f5ff6e2195e26c339ee9949e (patch)
tree3a182785671172c9300a1bed0eb676799c20eaa7 /services
parentd144748d4767b2ccfb13857e23f78bc944e9531d (diff)
parent78f9fffca4cbfad50bdb73569bc4f484d84215ab (diff)
downloadframeworks_base-baaf3ce6385da0f9f5ff6e2195e26c339ee9949e.zip
frameworks_base-baaf3ce6385da0f9f5ff6e2195e26c339ee9949e.tar.gz
frameworks_base-baaf3ce6385da0f9f5ff6e2195e26c339ee9949e.tar.bz2
Merge "Handle stopping of services with still bound applications."
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/am/ActivityManagerService.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index 854f96d..d6664e3 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -9692,8 +9692,10 @@ public final class ActivityManagerService extends ActivityManagerNative
if (DEBUG_SERVICE) Slog.v(TAG, "unbindFinished in " + r
+ " at " + b + ": apps="
+ (b != null ? b.apps.size() : 0));
+
+ boolean inStopping = mStoppingServices.contains(r);
if (b != null) {
- if (b.apps.size() > 0) {
+ if (b.apps.size() > 0 && !inStopping) {
// Applications have already bound since the last
// unbind, so just rebind right here.
requestServiceBindingLocked(r, b, true);
@@ -9704,7 +9706,7 @@ public final class ActivityManagerService extends ActivityManagerNative
}
}
- serviceDoneExecutingLocked(r, mStoppingServices.contains(r));
+ serviceDoneExecutingLocked(r, inStopping);
Binder.restoreCallingIdentity(origId);
}