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下两者的区别是什么?
------------------------------------------------------------------------------------------------------------------
问题补充:
这么说来,用Hander就不算开启线程?
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()方法来启动一个新线程。
第二种方法是启动一个新线程,也就是说它跟主线程不是同一个线程了。而第一种还是在主线程中的。
第二种方法是启动一个新线程,也就是说它跟主线程不是同一个线程了。而第一种还是在主线程中的。
这么说来,用Hander就不算开启线程?
采纳的答案
2011-06-16 苹果超人 (资深程序员)
第一种情况通过mHandler.post(r)其实是只调用线程的run()方法,然不是调用start()方法来启动一个新线程。
第二种方法是启动一个新线程,也就是说它跟主线程不是同一个线程了。而第一种还是在主线程中的。
第二种方法是启动一个新线程,也就是说它跟主线程不是同一个线程了。而第一种还是在主线程中的。
提问者对于答案的评价:
谢谢!