Handler,线程
来源:互联网 发布:淘宝小女孩泳衣模特 编辑:程序博客网 时间:2024/04/29 13:10
1. Handler与UI同线程,它用于在子线程中通知主线程更新。
诞生一个主线程的Handler物件,当做Listener去让子线程能将讯息Push到主线程的Message Quene里,以便触发主线程的handlerMessage()函数,让主线程知道子线程的状态,并在主线程更新UI。
例如,在子线程的状态发生变化时,我们需要更新UI。如果在子线程中直接更新UI,通常会抛出下面的异常:
ERROR/JavaBinder(1029):android.view.ViewRoot$CalledFromWrongThreadException:Only the original thread that created a view hierarchy can touch its views.意思是,无法在子线程中更新UI。
为此,需要通过Handler通知主线程Ui Thread来更新界面。
2. 在Android的开发中,非UI线程不能操作UI线程中的控件,即UI是非线程安全的;
如调用setBackGround(int color)或者setVisibility(int v)时,程序运行后出现异常,但是在工作线程(非UI线程)中调用android.widget.ProgressBar控件的setProgress(int count)方法时,程序运行并不会出现异常,
在大多数应用程序中,我们通常会有一个UI线程,即Android的UI Looper线程,还有一个通讯线程,负责和服务器端的交互。因为ProgressBar控件属于非UI线程的变量,它为非UI线程所有,不存在多线程共享数据的问题;而在非UI线程中调用setBackGround(int color)等方法,就涉及到调用UI线程的Context等变量的问题,这样就存在线程安全的隐患。
参考 http://blog.csdn.net/dongfengsun/article/details/753069
- Handler,线程
- 线程 handler
- Handler 线程
- 线程Handler
- Handler线程
- Handler线程操作
- UI线程、Looper、Handler
- handler 与线程
- 线程与Handler(1)
- android handler与线程
- Handler线程通信机制。
- handler looper 和 线程
- handler.post 与线程
- android线程 handler原理
- Android线程三、Handler
- 线程通讯:Handler
- Handler退出,线程退出
- 线程、handler 备注
- hibernate相关
- linux编译自己的lib库
- windows 7 网卡物理地址修改方法
- Simple Factory(Static Factory) Design Pattern
- haha
- Handler,线程
- 23:59 | 只看该作者 【我来解惑】.Net应该学什么怎么学(四)
- 有找零钱说起……
- R plot 画图
- 移动平台的未来会怎么样——战争
- 关于debug t1.exe出现的问题
- SAP 之歌 - SAP IS WHAT YOU NEED
- 早晨从中午开始
- IE6、IE7环视应用中的一个bug