summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-03-01 12:25:54 -0800
committerDianne Hackborn <hackbod@google.com>2011-03-01 12:25:54 -0800
commit3a28f22eb65c57342749fa9535bc7ff53e550117 (patch)
tree49ea3a5163a64cec6252c7526ac04014fe504934 /services
parent6c2193a7e26c0794f45dfb60d2a0cf6ae776f390 (diff)
downloadframeworks_base-3a28f22eb65c57342749fa9535bc7ff53e550117.zip
frameworks_base-3a28f22eb65c57342749fa9535bc7ff53e550117.tar.gz
frameworks_base-3a28f22eb65c57342749fa9535bc7ff53e550117.tar.bz2
Fix Issue 14340: Sticky Service killed with onDestroy not called, not restarted.
Change-Id: I2804c49ad5669ca89744c6d92ead0c7d21ee31d5 http://code.google.com/p/android/issues/detail?id=14340
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/am/ActivityManagerService.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index 8d30868..ea49661 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -9114,15 +9114,17 @@ public final class ActivityManagerService extends ActivityManagerNative
ServiceRecord.StartItem si = r.pendingStarts.remove(0);
if (DEBUG_SERVICE) Slog.v(TAG, "Sending arguments to: "
+ r + " " + r.intent + " args=" + si.intent);
- if (si.intent == null) {
- // If somehow we got a dummy start at the front, then
- // just drop it here.
+ if (si.intent == null && N > 1) {
+ // If somehow we got a dummy null intent in the middle,
+ // then skip it. DO NOT skip a null intent when it is
+ // the only one in the list -- this is to support the
+ // onStartCommand(null) case.
continue;
}
si.deliveredTime = SystemClock.uptimeMillis();
r.deliveredStarts.add(si);
si.deliveryCount++;
- if (si.targetPermissionUid >= 0) {
+ if (si.targetPermissionUid >= 0 && si.intent != null) {
grantUriPermissionUncheckedFromIntentLocked(si.targetPermissionUid,
r.packageName, si.intent, si.getUriPermissionsLocked());
}