From a957038f991efa7cb0c926d6034fb47df5d8745f Mon Sep 17 00:00:00 2001 From: Riddle Hsu Date: Fri, 5 Feb 2021 18:35:42 +0800 Subject: [PATCH] Remove last transition info after it is logged Otherwise if the activity calls Activity#reportFullyDrawn every time after it is created, the metrics will be reported again with unexpected values if it is relaunched, e.g. rotation change. Bug: 123355661 Test: No "Fully drawn" log by activity relaunched Change-Id: I16bd816c8f0af8c28c2b2ac38994d9daa9c0ba96 --- .../core/java/com/android/server/wm/ActivityMetricsLogger.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java index 6bca4843e0097..3a0eb397d2102 100644 --- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java +++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java @@ -978,6 +978,7 @@ class ActivityMetricsLogger { final TransitionInfoSnapshot infoSnapshot = new TransitionInfoSnapshot(info, r, (int) startupTimeMs); BackgroundThread.getHandler().post(() -> logAppFullyDrawn(infoSnapshot)); + mLastTransitionInfo.remove(r); if (!info.isInterestingToLoggerAndObserver()) { return infoSnapshot;