diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ServiceRecord.java | 11 |
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) { |