Android处理程序和线程机制

时间:2014-06-05 15:08:20

标签: android multithreading handler

我正在使用android上的线程和处理程序,我是这方面的初学者。

实际上,对我来说还有一些不清楚的地方:处理程序方法

void handleMessage(Message msg)"

总是在UI线程中运行?

事实上,在官方文件中他们说"

  

每个Handler实例都与一个线程相关联   线程的消息队列

这对我来说有点混乱,因为根据我的理解,这意味着处理程序的handleMessage方法在创建它的线程中运行。

请提前帮助并提前致谢

1 个答案:

答案 0 :(得分:0)

Handler运行在通过new创建它时所处的任何线程上。该线程必须具有一个Looper对象,UI线程默认具有该对象,并且任何其他线程必须自己创建。因此,虽然您可以将Handler帖子发布到任何线程,但99%的时间它将出现在UI线程上。可以安全地假设它在读取代码时进入UI线程,直到证明不同。