iteye_5695
2011-06-16 09:54
浏览 300

Android用Handle调用线程与用Thread直接创建线程的区别?

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下两者的区别是什么?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qianzhi008 2011-06-16 17:09
    已采纳

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

    点赞 打赏 评论
  • qianzhi008 2011-06-17 11:13

    [quote]这么说来,用Hander就不算开启线程? [/quote]
    正解。如果你想用handler启动新线程的话,有个类叫HandlerThread,你可以看一下api :D

    点赞 打赏 评论
  • _cary 2013-04-11 13:53

    :o :o :o :o :o

    点赞 打赏 评论

相关推荐 更多相似问题