Android的Handler提供了多种创建方式:

package com.chanryma.demo;import android.os.Handler;
import android.os.Message;public class HandlerDemo {private Handler myHandler1 = new Handler(new MyHandlerCallback());private Handler myHandler2 = new MyHandler();private class MyHandlerCallback implements Handler.Callback {@Overridepublic boolean handleMessage(Message msg) {// Handle messages.return false;}}private class MyHandler extends Handler {@Overridepublic void handleMessage(Message msg) {// Handle messages.}}
}

Handler的源码,下面是处理消息的过程:

/*** Handle system messages here.*/public void dispatchMessage(Message msg) {if (msg.callback != null) {handleCallback(msg);} else {if (mCallback != null) {if (mCallback.handleMessage(msg)) {return;}}handleMessage(msg);}}

两种使用方式的优劣:

是一个优先级的问题,如果你消息自己有callback的话,就会优先执行你的消息的callback,如果有mCallBack对象的话,就执行mCallBack对象的回调。最后才是handler自己的方法。可能你没有用到比较复杂的场景里,比如接收到的消息有可能是多类型多处理机制的,并且不是在同一个页面的。但是又要用同一个handler来发消息。

message自带的callback实际上是一个runnable类,也就是说你给message设置了callback后,实际上执行的是这个runnable类里的run方法。

继承Handler还是实现Handler.Callback?相关推荐

  1. android handler内存,Android handler之内存泄露原因揭示

    关于handler机制大家可以看前面专题Android面试精选--再聊android Handler机制.今天我们要说的重点是 handler为什么会发生内存泄露? 我们先从源头说起,应用刚启动时,第 ...

  2. handler.post和handler.sendMessage的区别和联系

    现在大部分人都很熟悉handler这个东西了,我们常用handler的场景无非有两个: 1. 异步更新UI 2. 延时任务 但是我一直有一个困惑,就是handler.post(r)这个方法有什么独特的 ...

  3. Handler完全解读——Handler的使用

    个人博客:https://blog.N0tExpectErr0r.cn 小专栏:https://xiaozhuanlan.com/N0tExpectErr0r Handler完全解读--Handler ...

  4. gen_event中的handler和supervised handler

    呃,在gen_event中有两个添加handler的方法 gen_event:add_handler/3 gen_event:add_sup_handler/3 一开始总是有些迷惑两者的区别,今天查看 ...

  5. 【Android 异步操作】手写 Handler ( Handler 发送与处理消息 | Handler 初始化 | 完整 Handler 代码 )

    文章目录 一.Handler 发送与处理消息 ( 两大功能 ) 二.Handler 初始化 三.完整 Handler 代码 一.Handler 发送与处理消息 ( 两大功能 ) Handler 有两个 ...

  6. 【Android 异步操作】Handler ( 主线程中的 Handler 与 Looper | Handler 原理简介 )

    文章目录 一.主线程中的 Handler 与 Looper 二.Handler 原理简介 一.主线程中的 Handler 与 Looper Android 系统中 , 点击图标启动一个应用进程 , 就 ...

  7. 85、android handler的警告Handler Class Should be Static or Leaks Occur

    转载:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1106/1922.html 在使用Handler更新UI的时候,我是这样写 ...

  8. 安卓handler的用法,handler举例

    原帖跳转: link 一.Handler的定义: Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用.比如可以用handler发送一个message,然后在 ...

  9. android handler,Android中Handler原理

    Handler主要是主线程和子线程通信.一般子线程中做一些耗时操作做完之后通知主线程来修改UI. 实际上android系统在Activity启动或者状态变化等都是通过Handler机制实现的. 首先进 ...

最新文章

  1. dubbo k8s 服务发现_工商银行基于 Dubbo 构建金融微服务架构的实践-服务发现篇
  2. 中兴F460破解超管及远程管理
  3. BZOJ 1920 Luogu P4217 [CTSC2010]产品销售 (模拟费用流、线段树)
  4. 计算机组成原理 试讲,常州信息职业技术学院-试讲ppt-计算机组成原理-信息表示.ppt...
  5. 带负荷测试要求二次最小电流_电流回路基础知识(15):带负荷测试
  6. SOA架构设计和相关案例分析
  7. resiprocate 之repro使用
  8. Delphi7·ProgressBar控件
  9. solidworks鼠标中键设置
  10. html空格语言,HTML中如何键入空格
  11. 流媒体服务器ZLMediaKit
  12. 超文本传输协议http详解
  13. On SDK version 23 and up, your app data will be automatically backed up and restored on app install.
  14. CentOS下Qt安装
  15. SQL注入--利用cookie进行注入
  16. 10M网线与100M网线和1000M(千兆)网线做法
  17. CF 221 C Circling Round Treasures - dp - 状压
  18. macOS 应用崩溃日志
  19. S19文件格式详解(1)
  20. GEC210 烧写裸机程序到SD卡、flash

热门文章

  1. 【Spring】Spring教程入门到精通
  2. 批处理 统计多个文件数量大小
  3. AI 一键抠图助你快速打造活动宣传海报
  4. 文章选题立意新颖的一个简单妙招
  5. 北京物资学院计算机考研资料汇总
  6. 解决 ArchLinux 下中文 Chinese 不能输入 couldnt input 的问题
  7. ILDasm和ILAsm简单使用
  8. 查尔姆斯理工计算机教授,瑞典查尔姆斯理工大学王二刚教授系统评述:供体-受体型三元共轭聚合物实现高效太阳能电池器件构筑...
  9. 一元函数的导数与微分概念及其计算
  10. Render函数的使用方法