//case 1:post to main thread's handler
mHandler.post(new Runnable(){
public void run(){
dosomething(); //update UI
});
//case 2:run in main thread
dosomething();
答案 0 :(得分:3)
即使你在处理程序的线程上,案例1也会排队,案例2将立即执行。
答案 1 :(得分:2)
好吧,如果你在主线程中,那么你就是主线程,所以没关系。
但是很多时候,你处于一个工作线程中,并希望做一些只能在主线程中完成的事情(比如更新UI)。在这些情况下,您需要做一些特殊的事情来在主线程上运行代码 - 您发布的处理程序代码就是一个例子。