Fix BatteryStats counts foreground activity time.

When an application crashes or ANRs in the foreground, or when the
application actively commits suicide in the foreground. It is often
impossible to switch to the PAUSED state of ActivityRecord. At this
time, the Timer in BatteryStats cannot be terminated, and it will keep
timing, which will eventually lead to errors in foreground activity time
statistics. So we'll settle in the handleAppDied function to fix that.

Bug: 208355716
Change-Id: I23baf545105e0bb9322dc4a1702e38e0ef825c53
Signed-off-by: unknown <80264454@adc.com>
This commit is contained in:
Lang Yu
2022-01-26 15:27:59 +08:00
committed by Riddle Hsu
parent 070f2b0502
commit 19758a38a4

View File

@@ -4932,6 +4932,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
mAtmService.updateActivityUsageStats(this, Event.ACTIVITY_STOPPED);
break;
case DESTROYED:
if (app != null && (mVisible || mVisibleRequested)) {
// The app may be died while visible (no PAUSED state).
mAtmService.updateBatteryStats(this, false);
}
mAtmService.updateActivityUsageStats(this, Event.ACTIVITY_DESTROYED);
// Fall through.
case DESTROYING: