Loading services/accessibility/accessibility.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,16 @@ flag { } } flag { name: "package_monitor_dedicated_thread" namespace: "accessibility" description: "Runs the A11yManagerService PackageMonitor on a dedicated thread" bug: "348138695" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "manager_package_monitor_logic_fix" namespace: "accessibility" Loading services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +14 −1 Original line number Diff line number Diff line Loading @@ -116,6 +116,7 @@ import android.os.Binder; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; import android.os.Looper; import android.os.Message; Loading Loading @@ -901,7 +902,19 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub private void registerBroadcastReceivers() { // package changes mPackageMonitor = new ManagerPackageMonitor(this); mPackageMonitor.register(mContext, null, UserHandle.ALL, true); final Looper packageMonitorLooper; if (Flags.packageMonitorDedicatedThread()) { // Use a dedicated thread because the default BackgroundThread used by PackageMonitor // is shared by other components and can get busy, causing a delay and eventual ANR when // responding to broadcasts sent to this PackageMonitor. HandlerThread packageMonitorThread = new HandlerThread(LOG_TAG + " PackageMonitor", Process.THREAD_PRIORITY_BACKGROUND); packageMonitorThread.start(); packageMonitorLooper = packageMonitorThread.getLooper(); } else { packageMonitorLooper = null; } mPackageMonitor.register(mContext, packageMonitorLooper, UserHandle.ALL, true); // user change and unlock IntentFilter intentFilter = new IntentFilter(); Loading Loading
services/accessibility/accessibility.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,16 @@ flag { } } flag { name: "package_monitor_dedicated_thread" namespace: "accessibility" description: "Runs the A11yManagerService PackageMonitor on a dedicated thread" bug: "348138695" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "manager_package_monitor_logic_fix" namespace: "accessibility" Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +14 −1 Original line number Diff line number Diff line Loading @@ -116,6 +116,7 @@ import android.os.Binder; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; import android.os.Looper; import android.os.Message; Loading Loading @@ -901,7 +902,19 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub private void registerBroadcastReceivers() { // package changes mPackageMonitor = new ManagerPackageMonitor(this); mPackageMonitor.register(mContext, null, UserHandle.ALL, true); final Looper packageMonitorLooper; if (Flags.packageMonitorDedicatedThread()) { // Use a dedicated thread because the default BackgroundThread used by PackageMonitor // is shared by other components and can get busy, causing a delay and eventual ANR when // responding to broadcasts sent to this PackageMonitor. HandlerThread packageMonitorThread = new HandlerThread(LOG_TAG + " PackageMonitor", Process.THREAD_PRIORITY_BACKGROUND); packageMonitorThread.start(); packageMonitorLooper = packageMonitorThread.getLooper(); } else { packageMonitorLooper = null; } mPackageMonitor.register(mContext, packageMonitorLooper, UserHandle.ALL, true); // user change and unlock IntentFilter intentFilter = new IntentFilter(); Loading