summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLang Yu <lyu80688@gmail.com>2022-01-26 15:27:59 +0800
committerRiddle Hsu <riddlehsu@google.com>2022-02-09 06:24:58 +0000
commit19758a38a4f839f7120e414c836161bf0bceb164 (patch)
tree42955917331588705bcbf5f54fe6a48bb4ff14e8
parent070f2b0502faea6bf0d7900db3b2e52b964ad45f (diff)
downloadbase-19758a38a4f839f7120e414c836161bf0bceb164.tar.gz
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>
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index b52e527b0556..6149bcf05050 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -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: