summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/am/ServiceRecord.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/am/ServiceRecord.java b/services/core/java/com/android/server/am/ServiceRecord.java
index 2f1b22ec9a67..446b12833096 100644
--- a/services/core/java/com/android/server/am/ServiceRecord.java
+++ b/services/core/java/com/android/server/am/ServiceRecord.java
@@ -551,12 +551,10 @@ final class ServiceRecord extends Binder implements ComponentName.WithComponentN
.removeAllowBackgroundActivityStartsToken(this);
ams.mHandler.removeCallbacks(mStartedWhitelistingBgActivityStartsCleanUp);
}
- mAppForStartedWhitelistingBgActivityStarts = null;
- }
- if (mHasStartedWhitelistingBgActivityStarts) {
- // Make sure the cleanup callback knows about the new process.
- mAppForStartedWhitelistingBgActivityStarts = _proc;
}
+ // Make sure the cleanup callback knows about the new process.
+ mAppForStartedWhitelistingBgActivityStarts = mHasStartedWhitelistingBgActivityStarts
+ ? _proc : null;
if (mHasStartedWhitelistingBgActivityStarts
|| mHasBindingWhitelistingBgActivityStarts) {
_proc.addAllowBackgroundActivityStartsToken(this);
@@ -656,6 +654,9 @@ final class ServiceRecord extends Binder implements ComponentName.WithComponentN
*/
void whitelistBgActivityStartsOnServiceStart() {
setHasStartedWhitelistingBgActivityStarts(true);
+ if (app != null) {
+ mAppForStartedWhitelistingBgActivityStarts = app;
+ }
// This callback is stateless, so we create it once when we first need it.
if (mStartedWhitelistingBgActivityStartsCleanUp == null) {