summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/ActivityMetricsLogger.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
index 09461132ef37..1ab402d804fc 100644
--- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
@@ -80,6 +80,7 @@ import android.content.pm.dex.ArtManagerInternal;
import android.content.pm.dex.PackageOptimizationInfo;
import android.metrics.LogMaker;
import android.os.Binder;
+import android.os.Handler;
import android.os.Looper;
import android.os.SystemClock;
import android.os.Trace;
@@ -92,9 +93,9 @@ import android.util.proto.ProtoOutputStream;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
-import com.android.internal.os.BackgroundThread;
import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.function.pooled.PooledLambda;
+import com.android.server.FgThread;
import com.android.server.LocalServices;
import com.android.server.apphibernation.AppHibernationManagerInternal;
import com.android.server.apphibernation.AppHibernationService;
@@ -150,6 +151,7 @@ class ActivityMetricsLogger {
private long mLastLogTimeSecs;
private final ActivityTaskSupervisor mSupervisor;
private final MetricsLogger mMetricsLogger = new MetricsLogger();
+ private final Handler mLoggerHandler = FgThread.getHandler();
/** All active transitions. */
private final ArrayList<TransitionInfo> mTransitionInfoList = new ArrayList<>();
@@ -897,11 +899,11 @@ class ActivityMetricsLogger {
// This will avoid any races with other operations that modify the ActivityRecord.
final TransitionInfoSnapshot infoSnapshot = new TransitionInfoSnapshot(info);
if (info.isInterestingToLoggerAndObserver()) {
- BackgroundThread.getHandler().post(() -> logAppTransition(
+ mLoggerHandler.post(() -> logAppTransition(
info.mCurrentTransitionDeviceUptime, info.mCurrentTransitionDelayMs,
infoSnapshot, isHibernating));
}
- BackgroundThread.getHandler().post(() -> logAppDisplayed(infoSnapshot));
+ mLoggerHandler.post(() -> logAppDisplayed(infoSnapshot));
if (info.mPendingFullyDrawn != null) {
info.mPendingFullyDrawn.run();
}
@@ -909,7 +911,7 @@ class ActivityMetricsLogger {
info.mLastLaunchedActivity.info.launchToken = null;
}
- // This gets called on a background thread without holding the activity manager lock.
+ // This gets called on another thread without holding the activity manager lock.
private void logAppTransition(int currentTransitionDeviceUptime, int currentTransitionDelayMs,
TransitionInfoSnapshot info, boolean isHibernating) {
final LogMaker builder = new LogMaker(APP_TRANSITION);
@@ -1036,7 +1038,7 @@ class ActivityMetricsLogger {
: TimeUnit.NANOSECONDS.toMillis(currentTimestampNs - info.mTransitionStartTimeNs);
final TransitionInfoSnapshot infoSnapshot =
new TransitionInfoSnapshot(info, r, (int) startupTimeMs);
- BackgroundThread.getHandler().post(() -> logAppFullyDrawn(infoSnapshot));
+ mLoggerHandler.post(() -> logAppFullyDrawn(infoSnapshot));
mLastTransitionInfo.remove(r);
if (!info.isInterestingToLoggerAndObserver()) {