Github项目地址 https://github.com/532268948/MessageDemo

一、介绍

随着页面的增多,页面之间的信息交流也会越来越多,比如一个社交类app,你在个人中心修改了自己的个人信息,在动态展示页面你就要通知该页面有关于自己的动态需要更新自己展示在页面上的信息。 该框架的核心思想是在进入页面的的时候注册监听器,每一类事件监听器都有一个唯一标志符用来区分不同的事件,时间传递信息的媒介是Message,就是Handler中的,在Message中你可以传输自己想传的数据。

二、用法

//注册事件

三、源码解析(以Activity为例)

注册事件

MessageManager.java

/**

MessageLooper.java

/**

从中可以看到有一个MessageLooper的新类,它是事件注册的核心,该类的功能是对所有注册事件进行统一管理,其中变量mMessageReceiver存储了所有的注册事件。

/**

ListenerContainer这个类,它主要是负责将不同页面的注册事件区分,方便注销当前页面的事件,在添加事件的时候会同时添加到该页面的ListenerContainer对象中,一个ListenerContainer对象包含了一个页面的所有注册事件。

注销事件

MessageManager.java

/**

ListenerContainer.java

/**

MessageLooper.java

/**

在调用ListenerContainer的clear()方法的时候在清空当前ContainerListener的listeners的同时清空MessageLooper中的注册事件。

发送事件

MessageManager.java

/**

MessageLooper.java

/**

发送事件时会遍历MessageLooper中的mMessageReceiver,如果有相同cmd的MessageListener会调用该Listener中的onMessage方法实现消息的全局接收。

Github项目地址 https://github.com/532268948/MessageDemo

android 通知_Android 全局消息通知框架实现(类似EventBus)相关推荐

  1. uni-app 全局消息通知弹窗(App端)

    uni-app 全局消息通知弹窗(App端) 实现效果 实现一个顶部的全局消息通知,并且可以常驻,除非手动关闭. 效果图如下 收到告警通知 弹窗从顶部向下弹出,可点击跳转到对应页面,可上滑关闭弹窗,弹 ...

  2. 「Android基于MQTT实现消息通知」

    「Android基于MQTT实现消息通知」 一.写在前面 在对接项目中IoT时,发现目前有对MQTT做了接入,这里记录一下,官方的资料比较详细,这里主要从实现细节出发:对具体的需求以及配套的技术方案进 ...

  3. 通知与服务——消息通知——通知推送Notification

    手机通知栏存放的是App主动推给用户的提醒消息,每条消息包括消息图标.消息标题.消息内容等,这些消息元素由通知建造器Notification.Builder设定. 常用方法如下: setSmallIc ...

  4. 手机消息通知服务器,手机通知消息服务

    手机通知消息服务 内容精选 换一换 云监控的告警通知对象可以是"云账号联系人"也可以是主题的订阅者.下面为您介绍当通知对象分别是"云账号联系人"或主题的订阅者时 ...

  5. spring boot 整合钉钉机器人发送消息通知

    钉钉消息通知 主要用于系统预警.资源预警.重要消息通知,随时随地可以掌握重要信息 一.通知效果 1.文本通知 2.带链接的通知 3.makrdown格式 通知 4.ActionCard 通知 5.Fe ...

  6. 钉钉小程序生态5—钉钉群机器人消息通知和钉钉工作通知

    文章导航 钉钉小程序生态1-区分企业内部应用.第三方企业应用.第三方个人应用 钉钉小程序生态2-区分小程序和H5微应用 钉钉小程序生态3-钉钉扫码登录PC端网站 钉钉小程序生态4-钉钉小程序三方企业应 ...

  7. 消息通知系统设计六要素

    无论是 B 端还是 C 端产品,消息通知系统都是一个很基础且必不可少的模块,而产品经理要设计一个完整的消息通知系统并不难,只需要遵守好消息通知系统设计的六要素即可. 消息通知六要素 通知消息围绕在我们 ...

  8. 一文彻底玩转Android通知栏消息通知

    消息渠道 Google为什么要引入消息渠道这个,因为在之前版本的Android通知管理中,通知消息要么全部接收,要么全部屏蔽,然而消息渠道改变了这一特点. 就是每条通知都要属于一个对应的渠道.每个Ap ...

  9. Java中集成极光推送实现给Android提送消息通知(附代码下载)

    场景 Android中集成极光推送实现推送消息通知与根据别名指定推送附示例代码下载: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details ...

最新文章

  1. Linux下控制环境变量
  2. 网众无盘服务器 快车挂盘失败 显示 当前磁盘已经为超级工作站模式,网众无盘超级工作站的一些经验总结...
  3. VC++ 保存数据为音频文件(WAV)学习
  4. linux看进程所在,linux 查看进程所在目录
  5. mysql 卸载批处理_MYSQL 注册启动 及 停用卸载 批处理脚本 (补)
  6. 天哪,flash cs4可以使动态文本旋转了
  7. 嵌入式系统常见的内存段
  8. 手机触摸屏有电阻屏和电容屏,有什么区别?
  9. DaZeng:雪碧图(精灵图)的使用
  10. Shiro框架 Subject、SecurityManager、线程之间的关系
  11. 厌倦只是一瞬间的事 2012-03-29 09:54:01 明明该有许多话要交代下去有许多事要汇报上去,明明有很多事情要去做,可是偏偏都不想去。可是突然还是打算留在电脑前漫无目的地把时间都耗费在了
  12. 服务器虚拟化太金苹果效果好,《我的世界》金苹果更新速度太快,如今附魔金苹果“可遇不可求”...
  13. guava实现MD5加密
  14. word使用:默认粘贴方式的更改
  15. 怎么解决ie浏览器无法更改主页?
  16. 不太吸引人的成就系统
  17. 3月份,计算机保研er应该做好哪些准备?
  18. ifconfig命令详解,ifconfig命令输出说明
  19. 大脑皮层功能梯度的意义及其计算
  20. [Unity][ILRuntime][C#]热更新运行官方示例U3D项目报错

热门文章

  1. python 整数逆位运算_Python 进制转换、位运算
  2. java nlpir_中科院NLPIR中文分词java版
  3. Linux下golang的编译,golang Linux下编译环境搭建
  4. C++ 文本文件的读取和写入
  5. Java常见的几种设计模式
  6. 服务器预装操作系统,服务器预装操作系统吧
  7. Python中利用LSTM模型进行时间序列预测分析
  8. pcl使用通道滤波器来滤波
  9. 【Python】pip模块管理Python包的常用方法
  10. HGOI20190707 题解