Merge "Fix timing issue on the second or later Service.startForeground()." into tm-dev

This commit is contained in:
Hui Yu
2022-03-31 17:21:07 +00:00
committed by Android (Google) Code Review

View File

@@ -1875,7 +1875,7 @@ public final class ActiveServices {
if (delayMs > mAm.mConstants.mFgsStartForegroundTimeoutMs) {
resetFgsRestrictionLocked(r);
setFgsRestrictionLocked(r.serviceInfo.packageName, r.app.getPid(),
r.appInfo.uid, r.intent.getIntent(), r, r.userId,false);
r.appInfo.uid, r.intent.getIntent(), r, r.userId, false);
final String temp = "startForegroundDelayMs:" + delayMs;
if (r.mInfoAllowStartForeground != null) {
r.mInfoAllowStartForeground += "; " + temp;
@@ -1888,12 +1888,8 @@ public final class ActiveServices {
} else if (r.mStartForegroundCount >= 1) {
// The second or later time startForeground() is called after service is
// started. Check for app state again.
final long delayMs = SystemClock.elapsedRealtime() -
r.mLastSetFgsRestrictionTime;
if (delayMs > mAm.mConstants.mFgsStartForegroundTimeoutMs) {
setFgsRestrictionLocked(r.serviceInfo.packageName, r.app.getPid(),
r.appInfo.uid, r.intent.getIntent(), r, r.userId,false);
}
setFgsRestrictionLocked(r.serviceInfo.packageName, r.app.getPid(),
r.appInfo.uid, r.intent.getIntent(), r, r.userId, false);
}
// If the foreground service is not started from TOP process, do not allow it to
// have while-in-use location/camera/microphone access.