handler相关
2016-01-17 22:04
183 查看
如果你不带参数的实例化:Handler handler = new Handler();那么这个会默认用当前线程的looper
一般而言,如果你的Handler是要来刷新操作UI的,那么就需要在主线程下跑。
情况:
1.要刷新UI,handler要用到主线程的looper。那么在主线程 Handler handler = new Handler();,如果在其他线程,也要满足这个功能的话,要Handler handler = new Handler(Looper.getMainLooper());
2.不用刷新ui,只是处理消息。 当前线程如果是主线程的话,Handler handler = new Handler();不是主线程的话,Looper.prepare(); Handler handler = new Handler();Looper.loop();或者Handler handler = new Handler(Looper.getMainLooper());
若是实例化的时候用Looper.getMainLooper()就表示放到主UI线程去处理。
如果不是的话,因为只有UI线程默认Loop.prepare();Loop.loop();过,其他线程需要手动调用这两个,否则会报错。
一般而言,如果你的Handler是要来刷新操作UI的,那么就需要在主线程下跑。
情况:
1.要刷新UI,handler要用到主线程的looper。那么在主线程 Handler handler = new Handler();,如果在其他线程,也要满足这个功能的话,要Handler handler = new Handler(Looper.getMainLooper());
2.不用刷新ui,只是处理消息。 当前线程如果是主线程的话,Handler handler = new Handler();不是主线程的话,Looper.prepare(); Handler handler = new Handler();Looper.loop();或者Handler handler = new Handler(Looper.getMainLooper());
若是实例化的时候用Looper.getMainLooper()就表示放到主UI线程去处理。
如果不是的话,因为只有UI线程默认Loop.prepare();Loop.loop();过,其他线程需要手动调用这两个,否则会报错。
相关文章推荐
- CAA开发创建workshop/workbench应用程序的详细步骤(1)
- JavaScript之对象序列化详解
- PHP标准 —— 框架的互操作性
- 应用程序之间的跳转设置info.plist
- 算法导论 Exercises 9.3-9
- BZOJ Tyvj 1729 文艺平衡树
- C#窗体自适应
- C#中的泛型
- 一起学CC3200之开发环境简介(2)烧录程序
- MATLAB向txt连续写入数据
- Spring注解@Component、@Repository、@Service、@Controlle
- 用adt-bundle-windows搭建Android开发环境
- rqnoj jam计数法
- Android笔记--对同步与异步的概念上的理解和对LayoutParams的理解
- Android-Uiautomator:[6]运行中传入参数
- Scala-01:函数定义、流程控制、异常处理
- Delphi 全面控制Windows任务栏
- 【UVA】12299-RMQ with Shifts(线段树)
- BZOJ 1507 [NOI2003]Editor
- MongoDB数据存储结构