错误:Only the original thread that created a view hierarchy can touch its views——Handler的使用
来源:互联网 发布:java中session的用法 编辑:程序博客网 时间:2024/05/20 23:57
今天写了一个更新UI的小例子,没想到出了log打印了这样一个错误:Only the original thread that created a view hierarchy can touch its views。goolgle了一下找到了原因。
原来android中相关的view和控件不是线程安全的,我们必须单独做处理。这里借此引出Handler的使用。
Handler的官方描述:
A Handler allows you to send and process Message
and Runnable objects associated with a thread's MessageQueue
. Each Handler instance is associated with a single thread and that thread's message queue. When you create a new Handler, it is bound to the thread / message queue of the thread that is creating it -- from that point on, it will deliver messages and runnables to that message queue and execute them as they come out of the message queue
.Handler的使用场合:
1、 to schedule messages and runnables to be executed as some point in the future;
安排messages和runnables在将来的某个时间点执行。
2、 to enqueue an action to be performed on a different thread than your own.
将action入队以备在一个不同的线程中执行。即可以实现线程间通信。比如当你创建子线程时,你可以再你的子线程中拿到父线程中创建的Handler对象,就可以通过该对象向父线程的消息队列发送消息了。由于Android要求在UI线程中更新界面,因此,可以通过该方法在其它线程中更新界面。
通过Handler更新UI实例: 步骤: 1、创建Handler对象(此处创建于主线程中便于更新UI)。 2、构建Runnable对象,在Runnable中更新界面。 3、在子线程的run方法中向UI线程post,runnable对象来更新UI。 详细代码如下:
*java线程的详细讲解链接
- 错误:Only the original thread that created a view hierarchy can touch its views——Handler的使用
- 错误:Only the original thread that created a view hierarchy can touch its views——Handler的使用
- 错误:Only the original thread that created a view hierarchy can touch its views——Handler的使用
- 错误:Only the original thread that created a view hierarchy can touch its views——Handler的使用
- 错误:Only the original thread that created a view hierarchy can touch its views——Handler的使用
- 错误:Only the original thread that created a view hierarchy can touch its views——Handler的深入解析
- 错误:Only the original thread that created a view hierarchy can touch its views——Handler的深入解析
- 错误:Only the original thread that created a view hierarchy can touch its views——Handler的使
- Only the original thread that created a view hierarchy can touch its views——Handler的使用
- Only the original thread that created a view hierarchy can touch its views——Handler的使用
- Only the original thread that created a view hierarchy can touch its views——Handler的使用
- 报Only the original thread that created a view hierarchy can touch its views错误解决
- Only the original thread that created a view hierarchy can touch its views错误
- 报Only the original thread that created a view hierarchy can touch its views错误解决
- 报Only the original thread that created a view hierarchy can touch its views错误解决
- Only the original thread that created a view hierarchy can touch its views错误相关
- Only the original thread that created a view hierarchy can touch its views的相关
- Only the original thread that created a view hierarchy can touch its views的相关
- textbox点击加载li数据
- java native
- java 验证码的实现 以及 使用
- AutoCAD.NET:第一章 AutoCAD.NET二次开发概述
- AS3 视觉编程
- 错误:Only the original thread that created a view hierarchy can touch its views——Handler的使用
- keil报错解决方法总结(更新中)
- Websocket和PHP Socket编程
- 获得当前系统设置界面里设置的参数Settings.System.getInt
- AutoCAD.NET:第二章 Hello World
- 安全中间件与应用服务间如用session
- 母亲
- sar命令详解
- android中View, Window, Activity, WindowManager,ViewRoot几者之间的关系