Handler2
来源:互联网 发布:java怎么求质数 编辑:程序博客网 时间:2024/06/09 19:05
Looper循环只有在主线程中存在,MessageQueue在looper里,Activity里的onCreate(),和其他一些方法都在Looper里执行。
Handler 构造方法,可以穿looper ,如果有looper构造方法的 looper 赋值的是当前looper,如果没有looper.myLooper()得到looper。 myLooper 通过 sThreadLocal.get()得到当前线程的looper对象。通过Prepare方法将looper放入sThreadLocal
looper里方法loop里有个死循环,里面取messagequeue里的值。得到message,执行handler的dispatchMessage()方法。 最后message 重新放入msg池中
dispatchMessage()方法。先执行msg的callback接口里的方法。如果为空执行自己写的handler里的callback接口里的handlerMessage里对msg的处理方法。如果为空执行,执行一个空的handlerMessage方法。
子线程中执行,handler的dispatchMessage 方法里显示如果有接口执行自己接口里的run方法,而不执行handler里的handlerMessage方法。因为消息发送后最后是在主线程中执行,所以可以对UI操作。
如果后期要添加对ui操作,可以写子线程中这样写
方法1
Message message = Message.obtain(handler, new Runnable() { @Override public void run() { textView.setText("ss"); } }); handler.sendMessage(message); //发送消息
方法2
handler.post(new Runnable() { @Override public void run() { } });
方法3
runOnUiThread(new Runnable() { @Override public void run() { } });
0 0
- handler2
- handler2
- Handler2
- Handler2
- Handler2
- handler2使用msg传递bundle数据
- handler2使用msg传递bundle数据
- Shiro 认证
- Android开发bug集合
- YUV视频格式详解(翻译自微软文档)
- Errors running builder
- 《c和指针》摘录2-数据
- Handler2
- 博客初衷
- Android -- 无线网络配置信息的管理者WifiConfigStore简介
- 通用CentOS 6 服务器安全配置指南
- LeetCode23 – Merge k Sorted Lists (Java)
- call(), apply(), bind()三个晦涩函数
- java旅行--第五站--servlet与JSP--java过滤器与session的小例子
- CSS基础之CSS选择器
- CSS中易迅网三角形的制作