在 Android 中使用回调还是使用 Handler?

Using a callback vs using Handler in Android?

我正在向 Android 的 BluetoothChat sample app and noticed that they are using a Handler to send updates to the UI as seen here 学习。我想知道为什么他们不喜欢使用 callback/listener 将更新发送到 UI?

我的猜测是因为 Handler 在创建它的 Thread 上发布消息。如果您使用回调,则必须注意调用 runOnUiThread(Runnable) 才能执行任何类型的 UI 更改。

猜一猜。 Handler 是一个完美的异步解决方案。只是 post 消息到 MessageQueue,处理程序(UI 线程)将从中获取消息。它可以降低模块的复杂性。

CallBacks 是另一种解决方案,但是根据 Handler 更新很复杂 UI。