Handler基本使用
来源:互联网 发布:阿里云客服考试好考吗 编辑:程序博客网 时间:2024/06/17 00:13
Handler
- 基本概念
Handler:接收子线程发送的数据,并用此数据配合主线程更新UI。(子线程与主线程通信的工具)
Handler定义在主线程中(UI线程中);
Handler充当主线程和子线程之间交互的中介:
Handler在新启动的子线程中发送消息; 主要方法
post(Runnable)postAtTime(Runnable,long)sendEmptyMessage(int)sendMessageAtTime(Message,long)
以上post类方法允许你排列一个Runnable对象到主线程队列中,
sendMessage类方法, 允许你安排一个带数据的Message对象到队列中,等待更新.- 基本流程
创建Handle
Handler mhandler = new Handler(){ public void handleMessage(Message msg) { switch (msg.what){ //case后必须跟常量,即为final的 case CURRENT_MSG: t.setText("ggg"); break; } }; };
创建Thread对象
Thread mThread = new Thread(){ public void run() { Message msg= mhandler.obtainMessage(); msg.what=CURRENT_MSG; mhandler.sendMessage(msg); }; };
启动thread
mThread.start();
//只能放int型数据 mhandler.sendEmptyMessage(CURRENT_MSG); //允许处理Message对象 mhandler.sendMessage(msg);
不用创建线程只是想延迟执行
Message msg = handler.obtainMessage();msg.arg1 = childIndex;handler.sendMessageDelayed(msg, delay);
避免恶意操作,将不够延迟时间的操作移除,避免程序内部操作次数
避免恶意操作延迟执行,只执行最后一次的操作:class x implements Runnable { private boolean enable ; public x(boolean enable) { this.enable = enable; } public void run() { //要延时的操作 } }X ref;final boolean isEnable = enabled;mHandler.removeCallbacks(ref);//移除上次的操作ref = new x(isEnable);mHandler.postDelayed(ref, 1000); //延时执行
这里写代码片
网上一个很不错的帖子
(http://www.itzhai.com/android-the-role-and-use-of-handler.html#read-more)
0 0
- android-handler基本使用
- Handler的基本使用
- Handler基本使用
- Handler的基本使用
- Handler的基本使用
- Handler的基本简单使用
- Android Handler的基本使用
- Handler基本使用(一) new Handler()和new Handler(Handler.Callback)
- Handler由浅入深(一)--Handler的基本使用
- Handler的基本使用(1)
- Handler的基本使用(2)
- (Android review)handler的基本使用
- Android中Handler的基本使用2
- android——Handler类的一些基本使用
- Handler的基本使用(1)之更新progressBar
- Android异步消息处理机制(1)Handler基本使用
- Handler基本使用(二)new Message 、 Handler.obtainMessage和Message.obtain
- Handler基本使用(三) Handler机制的原理和源码讲解
- 日期对比
- 数据库备份与7天清除数据库原始备份文件。
- 汉诺塔II(hdu1207)经典递推
- Oracle 中 decode 函数用法
- 媒体猫创始人:如何才能做好行业的生态圈?
- Handler基本使用
- Java NIO 系列教程
- 简单的Java多线程的使用
- Android 滑动事件
- Cocos3.0 Editbox输入框的运用。
- 数组排序
- 我的[GO]语言程序变大了?
- android 中出现error opening trace file: No such file or directory (2)错误的解决办法
- ActivityManagerNative 反射