Handler发送消息小结
来源:互联网 发布:centos yum安装svn 编辑:程序博客网 时间:2024/06/05 08:52
- obtainMessage()得到一个Message对象。
创建一个Message然后发送是这么写的:
Message msg = new Message(); msg.arg1 = 1; msg.arg2 = 2; msg.what = 3; msg.obj = Object; handler.sendMessage(msg);
性能优化后这样写:
Message msg = handler.obtainMessage(); msg.arg1 = 1; msg.arg2 = 2; msg.what = 3; msg.obj = Object; handler.sendMessage(msg);
相当于:
Message msg = handler.obtainMessage(int what,int arg1, int arg2, Object obj ) handler.sendMessage(msg);
再简练一点(这段代码在创建的Message中只传入两个参数,并让handler延迟10ms发送消息):
handler.sendMessageDelayed(handler.obtainMessage(int what,Object obj), 10);
至于接受消息,肯定是在handleMessage(Message msg)中:
Handler handler = new Handler(){ public void handleMessage(Message msg) { super.handleMessage(msg); //接收Message发送的消息 msg.what msg.arg1 msg.arg2 msg.obj //这里msg.obj需要强转成你传过来的数据类型 } };
给个实例看一看:
public boolean onTouch(View view, MotionEvent event){ if(event.getAction() == MotionEvent.ACTION_UP) { handler.sendMessageDelayed(handler.obtainMessage(TOUCH_EVENT_ID,view), 10); } return false;} Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); //msg.obj强转成View类型(传过来的obj是一个View类型的参数) View scroller = (View)msg.obj; if(msg.what==TOUCH_EVENT_ID) { ...... } } };
0 0
- Handler发送消息小结
- android Handler发送与处理消息小结
- Handler的发送消息
- handler消息机制 小结
- 【Android】使用handler发送消息
- Handler常见发送消息方法
- Handler发送消息携带多个参数
- 【Android】使用handler发送消息02
- Handler传递消息怎样停止发送
- Handler发送消息,周期性更新UI总结
- Android Handler 发送消息的线程安全问题
- 关于Handler的延时发送消息
- Android 使用handler循环发送消息
- android的looper,handler消息小结
- android的looper,handler消息小结
- Handler认识与Handler的消息发送机制
- handler looper 消息发送和消息处理流程
- Handler(2)--主线程向自身消息队列发送消息
- Scala 隐式类型之隐式参数
- 九度OJ 1386(最值) 1387(递归) 1388(递归) 1389(递归) 1390(递归)
- java18.IO操作------使用带缓冲的字节流读写数据
- Python【map、reduce、filter】内置函数使用说明(转载)
- umeng1.统计SDK技术测评
- Handler发送消息小结
- Write .log file
- 挥手2015,笑迎2016
- 文章标题
- rpm程序包管理篇
- 【基础建模】复杂建模-布尔运算和放样学习笔记
- request对象
- java的TTS(Text to Speech)的实现
- umeng2应用更新SDK技术评测