Handler基本概念: Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分逐个的在消息队列中将消息取出,然后对消息进行出来,就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。 Handler 常用方法:

post(Runnable)

postAtTime(Runnable,long)

postDelayed(Runnable long)

sendEmptyMessage(int)

sendMessage(Message)

sendMessageAtTime(Message,long)

sendMessageDelayed(Message,long)

以上post类方法允许你排列一个Runnable对象到主线程队列中, sendMessage类方法, 允许你安排一个带数据的Message对象到队列中,等待更新.

例子运行逻辑:

点击button --- > 启动一条新线程,用来处理数据 ---- >数据处理完毕,通过handler返回 ----- > handler里面接收返回的数据,进行UI更新等处理。

package com.example.handlertest;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.TextView;public class MainActivity extends Activity {private TextView text;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);text = (TextView)findViewById(R.id.textView);}//定义一个handler,用来异步处理数据Handler handler = new Handler(){public void handleMessage(android.os.Message msg) {System.out.println("结果返回,正在处理....");if (msg.what == 1) {text.setText("异步处理结果是 === handler");}};};//新开一条线程,用来异步处理数据,结果通过handler返回Thread thread = new Thread(){public void run() {System.out.println("start thread,,,,");handler.sendEmptyMessage(1);};};//点击按钮public void StartTest(View v){thread.start();try {Thread.sleep(2000);} catch (InterruptedException e) {// TODO Auto-generated catch block
            e.printStackTrace();}System.out.println("onClick,,,,");}}

转载于:https://www.cnblogs.com/wblyuyang/p/3996068.html

Android ------ handler 异步处理消息相关推荐

  1. Android Handler 异步消息处理机制的妙用 创建强大的图片载入类

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38476887 ,本文出自[张鸿洋的博客] 近期创建了一个群.方便大家交流,群号: ...

  2. Android开发 ---多线程操作:Handler对象,消息队列,异步任务下载

    效果图: 1.activity_main.xml 描述:定义了六个按钮 <?xml version="1.0" encoding="utf-8"?> ...

  3. Study on Android【六】--消息机制,异步和多线程

    有了framework后,我们不用面对赤裸裸的OS API,做一些重复而繁杂的事情.但天下没有免费的午餐,我们还是需要学会高效正确的使用不同的framework,很多处理某一特定问题的手法在不同的fr ...

  4. [Android]Handler的消息机制

    最经面试中,技术面试中有一个是Handler的消息机制,细细想想,我经常用到的Handler无非是在主线程(或者说Activity)新建一个Handler对象,另外一个Thread是异步加载数据,同时 ...

  5. android 手机内存uri_Android消息机制Handler原理解析

    关注[搜狐技术产品]公众号,第一时间获取技术干货 导读 在Android中,Handler一直是一个热点,在开发过程中,它的使用频率很高,而且在Android源码中Handler都是常客.那么Hand ...

  6. 【安卓学习笔记】Android Handler 消息机制探究

    一.概述 1.android消息机制的含义: Android消息机制,其实指的就是 Handler 的运行机制,而 Handler 要正常运作,又需要底层的 MessageQueue , Looper ...

  7. Android之异步消息处理机制Handler源码解析

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/76083113 本文出自:[顾林海的博客] 个人开发的微信小程序,目前功 ...

  8. 【Android 异步操作】Handler 机制 ( Android 提供的 Handler 源码解析 | Handler 构造与消息分发 | MessageQueue 消息队列相关方法 )

    文章目录 一.Handler 构造函数 二.Handler 消息分发 三.MessageQueue 消息队列相关函数 一.Handler 构造函数 一般使用 Handler 时 , 调用 Handle ...

  9. 图解 Android Handler 线程消息机制

    从现实生活中理解线程消息机制 android 有一种叫消息队列的说法,这里我们可以这样理解:假如一个隧道就是一个消息队列,那么里面的每一部汽车就是一个一个消息,这里我们先忽略掉超车等种种因素,只那么先 ...

最新文章

  1. 鸿蒙系统首批更新机器,鸿蒙系统升级名单
  2. BZOJ4245 : [ONTAK2015]OR-XOR
  3. @value 数组_SpringBoot @Value 读取配置,太强大了!
  4. python3 异步 asyncio 动态添加任务
  5. pythonis啥意思-Python中is和==的区别
  6. FormatJS – 让你的 Web 应用程序国际化
  7. MySQL 是如何实现RC事务隔离级别的
  8. [BZOJ3772]精神污染
  9. CreateThread与_beginthreadex本质区别
  10. Spring消息之STOMP
  11. 重磅!阿里云发布业界首本云网络白皮书
  12. 十分钟倒计时flash_Flash 101-第6部分:最终倒计时
  13. 【科研数据处理】[实践]类别变量频数分析图表、数值变量分布图表与正态性检验(包含对数正态)
  14. 基于SSM框架实现的疫情统计系统
  15. java根据权重随机抽奖
  16. Vue 组件化通信 provide inject ,dispatch ,boardcast
  17. Git上传代码报错Push rejected: Push to origin/master was rejected
  18. 机器视觉工程师应该知道的23个工业镜头专业术语
  19. VS2015报错C4996处理
  20. P5006 [yLOI2018] 大美江湖

热门文章

  1. [Ext JS 4] 实战之 带week(星期)的日期选择控件
  2. Alibaba Druid 源码阅读(二) 数据库连接池实现初步探索
  3. python跟谁学_学 Python 都用来干嘛的?
  4. 扩展欧几里得算法(双六游戏)
  5. 中兴myos和鸿蒙,继华为鸿蒙系统以后!中兴再次发布新系统MyOS:可媲美苹果
  6. 火狐浏览器jtopo节点切换tab后消失报错NS_ERROR_FAILURE的解决
  7. java string传递_Java,将String从一种方法传递到另一种方法
  8. linux ping策略打开_Linux Iptables允许或阻止ICMP ping请求
  9. python更新版本会丢失库吗_Python小技巧:如何批量更新已安装的库?
  10. 查询出两个表中不同的数据