Thread和Handler之间有什么区别

aba*_*at 20 multithreading android handler

我试图找出线程和处理程序之间的区别.创建新处理程序是否会创建新线程?当使用post()运行新的处理程序时,它是否正在创建一个新线程?请解释

Mah*_*eTo 21

线程是可以执行大多数操作的通用处理任务,但是他们不能做的一件事是更新UI.

另一方面,处理程序绑定到允许您与UI线程通信的线程(更新UI).

因此,例如通过发布到处理程序的消息(Runnable)显示toast或更新进度条但是如果您将此runnable作为线程启动则不能.

使用处理程序,您还可以使用MessageQueuing,计划和重复.

我还没遇到我需要一个android线程的情况.

我主要使用AsyncTasks和Handlers的组合.

上述任务的处理程序.

AsyncTasks用于下载/数据获取和轮询等.

你可以在这里阅读开发者文章" 无痛线程 ",以获得更多的android线程.

更正:每个Handler实例都与一个线程和该线程的消息队列相关联.它们不是代表自己的线程.作为描述在这里.