Add BackgroundThread as Executor directly.
Bug: 123774494
Test: atest AppBindingHostTest
Change-Id: I12715f4b2dd444f1d9b1a5a53ae385af497fb52d
diff --git a/services/core/java/com/android/server/FgThread.java b/services/core/java/com/android/server/FgThread.java
index fe30057..5d0e308 100644
--- a/services/core/java/com/android/server/FgThread.java
+++ b/services/core/java/com/android/server/FgThread.java
@@ -17,9 +17,12 @@
package com.android.server;
import android.os.Handler;
+import android.os.HandlerExecutor;
import android.os.Looper;
import android.os.Trace;
+import java.util.concurrent.Executor;
+
/**
* Shared singleton foreground thread for the system. This is a thread for regular
* foreground service operations, which shouldn't be blocked by anything running in
@@ -34,6 +37,7 @@
private static FgThread sInstance;
private static Handler sHandler;
+ private static HandlerExecutor sHandlerExecutor;
private FgThread() {
super("android.fg", android.os.Process.THREAD_PRIORITY_DEFAULT, true /*allowIo*/);
@@ -48,6 +52,7 @@
looper.setSlowLogThresholdMs(
SLOW_DISPATCH_THRESHOLD_MS, SLOW_DELIVERY_THRESHOLD_MS);
sHandler = new Handler(sInstance.getLooper());
+ sHandlerExecutor = new HandlerExecutor(sHandler);
}
}
@@ -64,4 +69,11 @@
return sHandler;
}
}
+
+ public static Executor getExecutor() {
+ synchronized (FgThread.class) {
+ ensureThreadLocked();
+ return sHandlerExecutor;
+ }
+ }
}