2

我知道这很可能是一个非常愚蠢的问题,但我无法完全理解处理程序的意义。我知道这个想法是处理程序在主线程上执行,它们似乎最常与工作线程一起使用,但是为什么工作线程不能只调用调用 Activity 上的方法而不是说 Activity 与 Handler 一起创建线程接收消息?

再次,我为我的问题的无知道歉,但我在网上找到的只是关于如何使用处理程序的教程,而我的 Pro Android 3 书并没有解决我的问题(或者我太愚蠢了,无法正确理解它!)

或者,就此而言,为什么要在 AsyncTasks 上使用它们,它可以毫无问题地修改 UI?

谢谢你。

4

1 回答 1

5

当使用处理程序(或消息)时,每个任务都会“序列化”。这样做的好处是没有并发,因此不需要锁定。使消息驱动系统稳定比多线程系统容易得多。

顺便说一句,AsyncTask 也使用 Handlers

直接使用处理程序可以为您提供更大的灵活性。例如,您可以安排将来发送一条消息。或者您可以中止预定的消息。

处理程序是一个非常强大的工具。

于 2012-04-12T19:26:20.990 回答