diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java index 76a994ec63e90..99c2f8a5cc566 100644 --- a/services/core/java/com/android/server/am/UserController.java +++ b/services/core/java/com/android/server/am/UserController.java @@ -1972,7 +1972,7 @@ class UserController implements Handler.Callback { } private void dismissUserSwitchDialog(Runnable onDismissed) { - mInjector.dismissUserSwitchingDialog(onDismissed); + mUiHandler.post(() -> mInjector.dismissUserSwitchingDialog(onDismissed)); } private void showUserSwitchDialog(Pair fromToUserPair) { diff --git a/services/tests/servicestests/src/com/android/server/am/UserControllerTest.java b/services/tests/servicestests/src/com/android/server/am/UserControllerTest.java index dccacb4d301ac..24a628eb43310 100644 --- a/services/tests/servicestests/src/com/android/server/am/UserControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/am/UserControllerTest.java @@ -1342,6 +1342,10 @@ public class UserControllerTest { Message copy = new Message(); copy.copyFrom(msg); mMessages.add(copy); + if (msg.getCallback() != null) { + msg.getCallback().run(); + msg.setCallback(null); + } return super.sendMessageAtTime(msg, uptimeMillis); } }