使用handler.obtainMessage() 时要注意的问题
2013-04-15 20:33
435 查看
handler.obtainMessage() 的作用是从当前的Handler中获取指定的Message以供再次使用
尤其是在监测线程中 如果不断的new Message() 可能出现错误 (错误信息已经忘了 没有记录 =.=)
有5个重载的方法
what arg1 arg2 obj分别对应Message中的相应成员变量
并且这样获得的Message不用再重新定义相应的值 十分好用
一般来讲 what是用来switch不同的操作 而其他3个参数都是定义属性
要注意的是 具有两个参数的方法只有一个 且第二个参数是Object 而不是arg1
并且如果在2个参数的方法中 将第二个参数填写为本应该设置为arg1的值(int)时候 也不会报错 因为:
1. arg1有缺省值0
2. int型可以被自动转化为Integer
但是arg1的值却被赋给了msg,obj 所以在Handler中的arg1值就为0了
尤其是在监测线程中 如果不断的new Message() 可能出现错误 (错误信息已经忘了 没有记录 =.=)
有5个重载的方法
public final Message obtainMessage () public final Message obtainMessage (int what) public final Message obtainMessage (int what, Object obj) public final Message obtainMessage (int what, int arg1, int arg2) public final Message obtainMessage (int what, int arg1, int arg2, Object obj)
what arg1 arg2 obj分别对应Message中的相应成员变量
并且这样获得的Message不用再重新定义相应的值 十分好用
一般来讲 what是用来switch不同的操作 而其他3个参数都是定义属性
要注意的是 具有两个参数的方法只有一个 且第二个参数是Object 而不是arg1
并且如果在2个参数的方法中 将第二个参数填写为本应该设置为arg1的值(int)时候 也不会报错 因为:
1. arg1有缺省值0
2. int型可以被自动转化为Integer
但是arg1的值却被赋给了msg,obj 所以在Handler中的arg1值就为0了
相关文章推荐
- Android Handler使用Message的一个注意事项
- Handler基本使用(二)new Message 、 Handler.obtainMessage和Message.obtain
- Handler基本使用(二)new Message 、 Handler.obtainMessage和Message.obtain
- 使用ACE_Message_Block需要注意的问题
- 使用protoc-gen-lua-master需要注意的问题
- Android开发中,使用线程应该注意的问题!
- Android开发学习之路-使用Handler和Message更新UI
- iOS NStimer 使用注意问题
- web application中使用Profile应该注意的问题
- C++中使用转换构造函数和运算符重载时需要注意的问题
- 第二十三篇、使用NSURLSession时需要注意一个内存泄漏问题
- 对于使用xml配置文档时应该注意的问题
- 使用MVC框架中要注意的问题(六):何时使用PartialView方法
- cocos2dx 自学知识点之六 使用cocosbuild,需要注意的问题
- IOS 的loadView 及使用loadView中初始化View注意的问题。(死循环并不可怕)
- 使用from __future__ import unicode_literals时要注意的问题
- Hibernate中使用dao时注意问题
- 使用Entity Framework时要注意的一些性能问题
- Handler和Message的使用之一
- Android 在ListView使用addHeader注意的问题