Android用Handle调用线程与用Threa…

来源:互联网 发布:wifi电话软件免费通话 编辑:程序博客网 时间:2024/06/17 12:33

1、用Handler的情况
Handler mHandler = new Handler();
mHandler.post(r);
Runable r = new Runable(){
    public void run(){
        //do something
    }
}


2,用Thread直接创建的情况
new Thread(){
    public void run(){
       // do something
    }
}.start();

在Android下两者的区别是什么?

第一种情况通过mHandler.post(r)其实是只调用线程的run()方法,然不是调用start()方法来启动一个新线程。
第二种方法是启动一个新线程,也就是说它跟主线程不是同一个线程了。而第一种还是在主线程中的。

如果你想用handler启动新线程的话,有个类叫HandlerThread,你可以看一下api