Handler new Handler()和new Handler(Looper.getMainLooper())的区别

来源:互联网 发布:什么是淘宝客单价 编辑:程序博客网 时间:2024/05/21 23:20
Handler一定要在主线程实例化吗?new Handler()和new Handler(Looper.getMainLooper())的区别

一般而言,如果你的Handler是要来刷新操作UI的,那么就需要在主线程下跑。

情况:


1.刷新UI

1.1主线程


Handler handler = new Handler() 那么这个会默认用当前线程的looper


1.2非主线程

要刷新UI ,Handler handler = new Handler(Looper.getMainLooper())//Looper.getMainLooper()就表示放到主UI线程去处理。


2.不用刷新ui,只是处理消息

2.1 主线程 

Handler handler = new Handler()

2.2 非主线程

Looper.prepare(); 

Handler handler = new Handler();

Looper.loop()

或者:

Handler handler = new Handler(Looper.getMainLooper());  //Looper.getMainLooper()就表示放到主UI线程去处理。

参考:http://blog.csdn.net/thanklife/article/details/17006865




0 0
原创粉丝点击