Android 处理程序的意义是什么?

Android 处理程序的意义是什么?,android,handlers,Android,Handlers,我知道这很可能是一个非常愚蠢的问题,但我无法完全理解这个问题的意义。我知道这个想法是处理程序在主线程上执行,它们似乎最常用于工作线程,但是为什么工作线程不能只调用调用活动的方法,而不是说活动创建线程和处理程序来接收消息 再次,我为我的问题的无知道歉,但我在网上找到的只是关于如何使用处理程序的教程,而我的Pro Android 3书并没有澄清我的问题(或者我太愚蠢了,无法正确理解!) 或者,出于这个原因,为什么要在异步任务上使用它们,因为异步任务可以毫无问题地修改UI 谢谢。使用处理程序(或消息)

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

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

或者,出于这个原因,为什么要在异步任务上使用它们,因为异步任务可以毫无问题地修改UI

谢谢。

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

顺便说一下,AsyncTask也使用处理程序

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


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

现在更清楚了。我不知道AsyncTasks使用了处理程序。因此,使用AsyncTask就像是编写特定处理程序并使用它的速记。AsyncTask抽象了线程、处理程序、消息、消息队列等主题,并使这些内容对开发人员“不可见”。这是一种在UI线程之外执行长时间操作的舒适方式。使用处理程序可以“完全”控制。您可能需要执行一些任务that@SoManyGoblins是的,asynctask只是一个花哨的处理程序+线程:)相信我,你不想弄乱并发编程:)+1的意思是“让消息驱动系统比多线程系统更稳定。”这是真的。