android Handler 基础知识入门
2015-08-12 12:30
676 查看
常见问题
This message is already in use.
08-12 12:02:42.678: E/AndroidRuntime(5417): android.util.AndroidRuntimeException: { when=-318ms what=0 arg1=1 target=com.tomchen.smsbomb.view.FastChangeTextView$1 } This message is already in use.Solution
加上 msg = mHandler.obtainMessage();
[code] @Override public void handleMessage(Message msg) { switch (msg.arg1) { case UPDATE: if (currentValue < value) { Log.i(tag, "in mHandler UPDATE CASE"); setText(df.format(currentValue)); currentValue = currentValue + rate; //add this line msg = mHandler.obtainMessage(); msg.arg1 = UPDATE; sendMessageDelayed(msg, 30); } else { setText(df.format(value)); } break; default: break; } super.handleMessage(msg); } };
Handler 谷歌 官方文档学习
sendMessageDelayed 和sendEmptyMessageDelayed
sendMessageDelayed(Message msg, long delayMillis)Enqueue a message into the message queue after all pending messages before (current time + delayMillis).
sendEmptyMessageDelayed(int what, long delayMillis)
Sends a Message containing only the what value, to be delivered after the specified amount of time elapses.
简单说, 就是sendMessageDelayed 发送 Message, sendEmptyMessageDelayed 发送一个只包含
what的Message
上文把代码可以改成sendEmptyMessageDelayed
switch 也要改成从
what取出标记值
[code]private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case UPDATE: if (currentValue < value) { setText(df.format(currentValue)); currentValue = currentValue + rate; sendEmptyMessageDelayed(UPDATE, 30); } else { setText(df.format(value)); } break; default: break; } super.handleMessage(msg); } };
Note
sendEmptyMessageDelayed 不需要
obtainMessage()
如果文章对您有帮助,请多多支持^=^
相关文章推荐
- Android事件处理的两种模型介绍
- Android--使用include调用布局
- Android-Studio常用快捷键大全
- Android实战简易教程-第三十二枪(自定义View登录注册界面EditText-实现一键清空)
- Android jni开发资料--NDK环境搭建
- 六款值得推荐的android(安卓)开源框架简介
- Android选项菜单和上下文菜单解析
- Android 中 -Java中byte[]转String问题
- Android 常用动画
- android中canvas的clipRect和concate调用顺序不同导致的图像效果不同。
- Android自定义类似ProgressDialog效果的Dialog
- Android属性动画完全解析(上),初识属性动画的基本用法
- android关于高精度GPS模块
- [Android]Android5.0实现静默接听电话功能
- Android Studio如何设置代码自动提示
- android listview的item布局中含有button,不会响应listview的onitemclick监听 以及 onitemlongclick监听问题解决
- Leo仿【DOTA视频站】项目实践【一】----Fragment、Tab实现
- Android取消EditText自动获取焦点默认行为
- android Activity之间数据传递 Parcelable和Serializable接口的使用
- android Process 18869 exceeded cursor quota 100, will kill it