handler.post(runnable)会启动一个新的线程吗?

5
如果处理程序在主UI线程中实例化,那么使用Runnable进行发布会创建一个子线程并添加到消息队列中,还是只在UI线程中运行?
handler.post(new Runnable(){
    public void run() {
        // do stuff
    }
});
2个回答

11

不会创建新的线程。它只是在你的handler所附着的线程上执行你的runnable,这意味着在这种情况下,它是在你的UI线程上执行。


0
handler.post(new Runnable()){

public  void run(){
//do something
}
});

这并不保证它会创建一个新的线程,它只是调用与处理程序所附加的线程中的可运行项(在此处为UI线程)。

Handler不会创建新线程,它绑定到它所创建的线程的looper上(在本例中为主线程),或者在构造期间您提供的looper上。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接