位置: 编程技术 - 正文

EventBus使用之基础(event_base_new)

编辑:rootadmin

推荐整理分享EventBus使用之基础(event_base_new),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:eventbus的原理,eventbus怎么用,eventbus的原理,eventbus.$on,eventbus.$on,eventbus原理解析简书,eventbus原理解析简书,eventbus.$on,内容如对您有帮助,希望把文章链接给更多的朋友!

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!

开源项目链接

EventBus项目: EventBusDemo下载: ‘de.greenrobot:eventbus:2.4.0’。按照文档HOWTO.md进行操作。

Subscriber以onEvent开头的4个函数区别:

onEvent:事件的处理在和事件的发送在相同的线程,所以事件处理时间不应太长,不然影响事件的发送线程。

onEventMainThread: 事件的处理会在UI线程中执行。事件处理时间不能太长,长了会出现臭名远之的ANR。

onEventBackgroundThread:事件的处理会在一个后台线程中执行。虽然名字是BackgroundThread,事件处理是在后台线程,但事件处理时间还是不应该太长,因为如果发送事件的线程是后台线程,会直接在当前后台线程执行事件;如果当前线程是UI线程,事件会被加到一个队列中,由一个线程依次处理这些事件,如果某个事件处理时间太长,会阻塞后面的事件的派发或处理。

onEventAsync:事件处理会在单独的线程中执行,主要用于在后台线程中执行耗时操作,每个事件会开启一个线程,但最好限制线程的数目。

下面还是先上代码再总结分析。

实战一把屌爆天的功能

如下示例演示了EventBus的线程间通信与线程内通信及自定义消息结构的通信。

下载该实例工程完整代码点击我

EventBus使用之基础(event_base_new)

如下是主界面显示效果:

接着看代码:

首先自定义一个消息数据类型,如下:

接着编写主界面及逻辑代码:

xml代码太简单就省略了。

如下运行结果:

下载该实例工程完整代码点击我

从上面代码可以看见,当发过来一个消息的时候,EventBus区分onEventxxx被调运通过发送消息的参数类型区分(如:post(new MsgBean(“type”))对应onEvent(MsgBean event),post(“test!”)对应onEvent(String event))。

总结

通过上面基础实战发现,使用EventBus的基本步骤就是如下4步:

定义事件类型(或者不定义)。例如:MsgBean等定义事件处理方法。例如:onEvent等注册订阅者。例如:EventBus.getDefault().register(this)发送事件。例如:EventBus.getDefault().post(new MyEvent())

通过这个例子基本上你就可以上手EventBus框架使用了,也知道了大致基本原理。其实这还是不够,玩意出现bug又很郁闷不知道怎么改,所以下一篇还是老规矩,走读一下EventBus的大致源码,学习下作者的代码思想,同时熟悉EventBus的原理。

Wifi 的基本知识 原文链接地址1.IE.简介标准号IEEE.bIEEE.aIEEE.gIEEE.n标准发布时间年9月年9月年6月年9月工作频率范围2.4-2.GHz5.-5.GHz5.

android:gravity和android:layout_gravity的区别 android:gravity定义当前元素内容或当前元素里所包含的子元素(下属元素)的显示位置。android:layout_gravity定义当前元素在父元素里的显示位置。例子1?xmlve

Android requires compiler compliance level 5.0 or 6.0. Found &#;1.7&#; instead. Please use Android Tool 重装操作系统后,要重新配置Android开发环境。配置成功后,添加原本项目时却出现了错误!Androidrequirescompilercompliancelevel5.0or6.0.Found'1.7'instead.PleaseuseAndro

标签: event_base_new

本文链接地址:https://www.jiuchutong.com/biancheng/374598.html 转载请保留说明!

上一篇:Intent数据的传递(intent传递数据的方法)

下一篇:Wifi 的基本知识(wifi基本功能)

  • 小规模纳税人未达起征点增值税处理
  • 税前扣除什么意思
  • 土地增值税应纳税额如何计算
  • 哪些单位属于政府工作部门系列
  • 税控维护费抵减增值税报表怎么填
  • 代扣代缴完税凭证是什么
  • 计算消费税时运费计入计税依据么
  • 固定资产丢失
  • 企业所得税纳税调整明细表
  • 发票加盖公章有用吗
  • 因技术原因淘汰的财产形成的损失需备案吗
  • 个税手续费返还比例
  • 公司为员工异地调岗
  • 别人帮开票钱要打给别人账户吗
  • 增值税发票抵扣进项税什么意思
  • 印花税实收资本纳税义务发生时间
  • 红包营销活动方案
  • 列举20种不征增值税产品
  • 国家对发票开具时间有没有具体规定?
  • 文化事业建设费的征收范围
  • 小规模银行存款多笔小金额财务费用可以合并记账吗?
  • 基本户转移到别的银行怎么转移
  • 收代扣代缴个税手续费会计分录
  • 分公司会有股东吗
  • 税务缴纳滞纳金处罚依据
  • 选育新品种植物应如何缴纳增值税?
  • 电子商务如何做账
  • php获取长度
  • 王者荣耀体验皮肤什么时候结束
  • rftray.exe - rftray是什么进程 有什么用
  • win11搜索栏不能用
  • 系统win7旗舰版
  • 企业的各项费用
  • 出口增值税怎么计算公式
  • PHP:imageloadfont()的用法_GD库图像处理函数
  • php aes
  • php excel导入数据
  • 先申报工资还是先发工资
  • it云化
  • extract php函数
  • 空调入固定资产几年折旧
  • 哪些项目的进项税额可以从销项税额中抵扣
  • 无形资产商标设计图片
  • PostgreSQL教程(十六):系统视图详解
  • 企业所得税视同销售的有哪些?
  • 红冲更正的正确分录
  • 暂估入账应该如何操作
  • 简易计税项目税率
  • 年终奖能算在工资里吗
  • 房屋建筑物固定资产标牌图片
  • 企业收到返利怎么做账
  • 长期待摊费用摊销计算公式
  • 先开票后发货是什么意思
  • 红字冲销有没有时间限制
  • 给客户的促销费用怎么入账
  • 用SQL脚本读取Excel中的sheet数量及名称的方法代码
  • centos6.5中文
  • solaris date命令
  • win7自动变成win10
  • win8.1开机进入桌面
  • 如何修改windows注册表
  • sybase ase数据库用户名密码
  • 重装win7系统后桌面没东西
  • 影响电脑速度的因素
  • windows10储存
  • ExtJS 4.2 Grid组件单元格合并的方法
  • jquery easy ui
  • Node.js中的什么模块是用于处理文件和目录的
  • python怎么弄中文
  • 详解杭州亚运会会徽和口号
  • javascript基于什么的语言
  • jq动态设置css
  • 小规模纳税人忘记作废发票导致超过免税范围
  • 广西地方税务网站官网
  • 税务安装软件
  • 在监狱要花钱吗
  • 用于直接销售消费品的消费税计入
  • 企业需要缴纳哪些费用
  • 江西国家税务局入围体检名单
  • 个体开专用票需要进项吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设