resetFgsRestrictionLocked() must be called AFTER
logFGSStateChangeLocked(). Otherwise logFGSStateChangeLocked() picks up the wrong fields value from ServiceRecord. Bug: 190231954 Test: atest cts/tests/app/src/android/app/cts/ActivityManagerFgsBgStartTest.java Change-Id: I9ccfcb695da803350657836975ce03e05f26b4a4
This commit is contained in:
@@ -1930,7 +1930,6 @@ public final class ActiveServices {
|
||||
decActiveForegroundAppLocked(smap, r);
|
||||
}
|
||||
r.isForeground = false;
|
||||
resetFgsRestrictionLocked(r);
|
||||
r.mFgsExitTime = SystemClock.uptimeMillis();
|
||||
ServiceState stracker = r.getTracker();
|
||||
if (stracker != null) {
|
||||
@@ -1945,6 +1944,7 @@ public final class ActiveServices {
|
||||
FrameworkStatsLog.FOREGROUND_SERVICE_STATE_CHANGED__STATE__EXIT,
|
||||
r.mFgsExitTime > r.mFgsEnterTime
|
||||
? (int)(r.mFgsExitTime - r.mFgsEnterTime) : 0);
|
||||
resetFgsRestrictionLocked(r);
|
||||
mAm.updateForegroundServiceUsageStats(r.name, r.userId, false);
|
||||
if (r.app != null) {
|
||||
mAm.updateLruProcessLocked(r.app, false, null);
|
||||
@@ -4192,8 +4192,7 @@ public final class ActiveServices {
|
||||
r.isForeground = false;
|
||||
r.foregroundId = 0;
|
||||
r.foregroundNoti = null;
|
||||
r.mAllowWhileInUsePermissionInFgs = false;
|
||||
r.mAllowStartForeground = REASON_DENIED;
|
||||
resetFgsRestrictionLocked(r);
|
||||
|
||||
// Clear start entries.
|
||||
r.clearDeliveredStartsLocked();
|
||||
|
||||
Reference in New Issue
Block a user