Eventbus3.0入(踩)门(坑)之旅

别再只飞不记了!用CsvView分析你的大疆飞行日志,优化航拍与排查炸机原因 本文详细介绍了如何利用CsvView工具分析大疆无人机的飞行日志,帮助用户优化航拍效率和飞行安全。通过解读飞行日志中的关键数据,如电池性能、飞行轨迹等,用户可以及时发现潜在问题并改进飞行习惯。文章还提供了事故排查方法和进阶分析技巧,适合无人机爱好者和专业飞手。 阅读详情

首先祭出eventbus gayhub地址!

第一步:
导包:compile ‘org.greenrobot:eventbus:3.0.0’
第二步:
需要一个class,它的作用就是接受传过来的信息,你可以理解成调用接口返回封装了数据的类


public class FirstEvent {

    private String mMsg;
    public FirstEvent(String msg) {
        mMsg = msg;
    }
    public String getMsg(){
        return mMsg;
    }
}  

第三步:
在你需要接受消息的地方来一个这个(其实就是订阅),这个地方sticky = true暂可忽略,后面说。

 @Subscribe(sticky = true,threadMode = ThreadMode.MAIN)
    public void postingME(FirstEvent event){
        Log.i("robin1", "postingME222: "+event.getMsg());
    }

然后注册eventbus,比如在activity里面(这个地方可以抽取到baseactivity里面去,但是有坑,之后再说)

@Override
 public void onStart() {
     super.onStart();
     EventBus.getDefault().register(this);
 }

 @Override
 public void onStop() {
     super.onStop();
     EventBus.getDefault().unregister(this);
 }

第四步:
发送!注意,发送的数据类型要和Subscribe的方法的参数保持一致。

EventBus.getDefault().post(new FirstEvent("这是发送的文本111"));

上面就是官方介绍,说说使用场景吧,用过MVP模式的同学都知道,presenter拿到model的数据(其实就是接口返回的数据)之后,可以post出去,然后再view(activity)中接收,做一些UI的改变。
对,这是一般的情况,我突发奇想,两个activity之间传值可不可以?既然叫,事件总线,那么肯定是可以的,于是乎!
在activity1中post数据,在activity2中注册eventbus,解注册eventbus,然后,订阅方法。一气呵成,跑起来:wtf????怎么啥反应都没有?狂点,没用。

原来你post的时候,activity2还没加载,eventbus还没有注册,所以订阅也没用。解决方案就是:使用postSticky发送,然后把订阅的方法上面的注解加上sticky = true就行了。其实,这样还不如sratactivityforresult。

好了,开始踩坑:
坑1:Subscriber class com.android.myapplication.login.MainActivity and its super classes have no public methods with the @Subscribe annotation

可能你会碰到这样的一个bug.

看不清的有点,在新标签中查看

bug原因:你注册eventbus的地方,没有订阅的方法。
解决方案:加上订阅的方法。
其实你不加,这就违背了eventbus的设计,发送了,但是没有接受,那有啥用呢?

坑2: Subscriber class com.android.myapplication.login.MainActivity and its super classes have no public methods with the @Subscribe annotation
有人骂我了,这不是第一个坑吗?确实,错误信息一样。我们看一下原因
bug原因:这是因为你写了订阅方法,但是你的参数没写,也就是没有参数
解决方案:写上参数。
其实你想想,你不写参数,这是个啥?啥都不是。所以设计的时候还是给你报个错让你知道比较好。

坑3:Subscriber class com.android.myapplication.login.MainActivity already registered to event class com.android.myapplication.FirstEvent
bug原因:多次注册eventbus
解决方案:只能注册一次。
有人看到这,又要骂我了,玩呢??你傻逼写两句EventBus.getDefault().register(this);
大爷别急,确实任何人都不会连着写两句注册,除非马虎。但是,有一种情况,你们有baseactivity,你们的activity都继承于他,然后你又没仔细看baseactivity,然后你在activity里面注册了,也会导致这个问题,这个比较常见,尤其是新的项目二次开发的时候,这里我只是提一嘴,给大家提个醒。

好了现总结到这吧,后期用的过程中有bug的话,我会再更新。

STC8H DMA 串口1全双工中断方式收发通讯C语言 串口1全双工中断方式收发通讯程序。 通过PC向MCU发送数据, MCU将收到的数据自动存入DMA空间. 当DMA空间存满设置大小的内容后,通过串口1的DMA自动发送功能把存储空间的数据原样返回. 用定时器做波特率发生器,建议使用1T模式(除非低波特率用12T),并选择可被波特率整除的时钟频率,以提高精度。 阅读详情

相关推荐

桁架 拓扑优化 matlab程序_拓扑优化在结构轻量化及板壳加筋肋最优布置的应用...

1 拓扑优化简介材料的有效利用一直都是人类追求的目标,也是许多研究领域不变的话题,并伴随着结构优化理论和方法的产生而发展。结构优化设计通常分为三个层次:(1)拓扑优化:在一个确定的连续区域内寻求结构内部非实体区域位置和数量的最佳配置,寻求结构中的构件布局及节点联结方式最优化,使结构能在满足应力、位移等约束条件下,将外载荷传递到结构支撑位置,同时使结构的某种性态指标达到最优;(2)形状优化:指在保持...

weixin_39525355的博客 1878

EventBus 3.0 简单使用

EventBus GitHub地址 添加依赖: compile 'org.greenrobot:eventbus:3.0.0' 概述 Event 事件,它可以是任意类型 Subscriber,事件订阅者,在EventBus3.0之前我们必须定义以onEvent开头的那几个方法,分别是onEvent、onEventMainThread、onEventBackgroundThread和onEv...

qq_27575735的博客 178

PrimeTime生成.lib竟暗藏PG添加Bug

1. 确认原始库中是否包含PG引脚的定义。2. 查阅PrimeTime的write_lib命令文档,寻找相关选项。3. 在生成库时使用正确的选项,例如-include_pg_pins或类似参数。4. 验证生成的.lib文件是否包含pg_pin部分。

limanjihe的专栏 1921

EventBus遇到的坑

1、混淆之后 org.greenrobot.eventbus 无法回调注册方法 当时的解决方案是 EventBus整个类不参与混淆 2、eventbus 有部分回调成功 部分失败 这个真是被自己坑死了,居然用了org.simple.eventbus的包,然后疯狂回调org.greenrobot.eventbus 的注册方法,被自己蠢哭 org.greenrobot.eventbus org.si...

飘渺孤鸿影_的博客 915

泛微OA与金蝶云星空审批流程对接实战:从报销单到采购合同的完整指南

本文详细介绍了泛微OA与金蝶云星空审批流程的深度集成方案,涵盖从报销单到采购合同的完整对接指南。通过API层面的无缝连接,实现流程自动化、数据同源和权限联动,显著提升企业业务效率。文章还提供了环境配置、数据映射、接口安全等实用技巧,助力企业轻松完成系统对接。

weixin_29268637的博客 246

手把手教你用Node.js模拟大麦APP下单请求(含滑块验证处理)

本文详细解析了如何使用Node.js模拟大麦APP下单请求的全流程,包括接口逆向、滑块验证处理和签名算法逆向等关键技术。通过实战案例和代码示例,帮助开发者掌握移动端API调用的核心要素,如动态参数构造、安全验证突破等,提升自动化下单的成功率和效率。

weixin_42569329的博客 355

EventBus3.0的使用

一、添加依赖: compile ‘org.greenrobot:eventbus:3.0.0’ 二、先看一个小demo MainActivity 布局文件太过于简单就不贴出来了,就是一个TextView一个Button; 这里实现功能就是Butto一个点击跳转到SecendActivity界面; @Override protected void onCreate(Bund

AINewBegin的专栏 444

模拟IC实战—30天精通Sigma-delta(Σ-Δ) ADC 行为级建模与仿真

本文为模拟IC工程师提供了一套为期30天的Sigma-delta ADC行为级建模与仿真实战指南。文章深入浅出地阐释了Sigma-delta ADC如何通过过采样和噪声整形两大核心技术实现高精度转换,并重点演示了如何使用Python从零搭建一阶和二阶调制器模型,进行性能仿真与关键指标分析,为后续电路级设计提供清晰的性能预算和架构指导。

weixin_29237635的博客 400

EventBus3.0使用详解

这里所介绍的EventBus指的是greenrobot的EventBus,它是一款针对Android的发布/订阅事件总线。它能够让我们很轻松的实现在Android的各个组件以及线程之间进行传递消息。并且将事件的发送者与接收者之间进行解耦。而且他还是轻量级的Android类库。对于EventBus3.0中相对于先前的版本中用法有所改变,那么下面我们就来看一下如何使用这个EventBus;

李江东 1万+

LTE信令流程及业务流程

eNB返回E-RAB建立响应消息,E-RAB建立列表信息中包含成功建立的承载信息,E-RAB建立失败列表消息中包含没有成功建立的承载消息。3)当下行数据达到时,网络侧先对UE进行寻呼,随后UE发起随机接入过程,并发起service request过程。用户面:S-GW向eNB发送承载建立请求,包含(IMSI, QoS, TFT, TEID, LBI等)控制面:MME向eNB发送E-RAB建立请求,包含E-RAB ID,QoS,S-GW TEID。3)在S1接口上建立S1承载,在Uu接口上建立数据无线承载。

qq_44390640的博客 4584

嵌套学习 (Nested Learning, NL):赋予AI持续学习能力的革命性范式

嵌套学习(Nested Learning, NL)的核心哲学在于彻底颠覆传统深度学习中将模型架构(Architecture)与优化算法(Optimization)视为两个独立组件的“扁平化”视角 。传统方法通常将神经网络的结构设计和其训练过程分离开来,模型架构是预先定义好的静态蓝图,而优化算法(如SGD、Adam)则是一个外部的、统一的规则引擎,负责在训练期间调整模型参数 。这种分离的视角隐藏了模型内部不同组件之间复杂的梯度流和动态更新过程,将整个学习系统视为一个单一层次的优化问题。然而,嵌套学习范式提出,

步子哥的博客 489

de.greenrobot:eventbus:3.0.0-beta1混淆的坑

项目中已经集成EventBus3.0-beta测试版,没去更新正式版,混淆出现上面的bug Markdown和扩展Markdown简洁的语法 Caused by: de.greenrobot.event.e: Subscriber class com.klsw.betterlive.module.login.StartActivity and its super classes have no pu

Roben518的博客 4433

39-OpenLayers多图层切换显示隐藏,支持多个Layer同时显示和隐藏,OpenLayers懒加载瓦片

39-OpenLayers多图层切换显示隐藏,支持多个Layer同时显示和隐藏,OpenLayers懒加载瓦片

fxshy的博客 462

Android EventBus3.0用法全解析

前言 EventBus是一款针对Android优化的发布/订阅事件总线。简化了应用程序内各组件间、组件与后台线程间的通信。优点是开销小,代码更优雅,以及将发送者和接收者解耦。如果Activity和Activity进行交互还好说,如果Fragment和Fragment进行交互着实令人头疼,我们会使用广播来处理,但是使用广播稍显麻烦并且效率也不高,如果传递的数据是实体类需要序列化,那么很显然成本会有点...

假装你是大灰狼的专栏 8911

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

EventBus 3.0的用法 Demo

啥是 EventBus ,大家也都知道了,否则也不会跑来用。现在都更新到3.0了,我也是最近才去使用它,以前知道,但是毕竟没去实际运用,最近比较闲,也就来跳跳坑了。 首先,引用相关jar包依赖(额,这里还是用的Eclipse…用AS的自行跳过,直接添加一句依赖代码就好。) 考虑周到的我,直接贴出jar包下载地址。 http://download.csdn.net/detail/pm

花前月下的细说__AndJun 692

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

EventBus3.0使用详解,看这一篇就够了。

#### 为什么要用EventBus 当我们的项目进行开发的时候,往往需要各种的Intent,广播,接口回调,Handler等各种方式进行通信。当我们的项目越来越大,逻辑越来越复杂的时候,会造成代码量大,高度耦合等各种问题,导致项目维护成本越来越大,这个时候如果用EventBus就可以很好的解决一系列问题。 #### EventBus三要素 + Event 事件,可以是任意类型。 + Subscriber 事件订阅者 3.0之后函数名字可以随便取,使用注解的方式进行订阅。 + Publis

Blank的博客 989

EventBus 3.0源码简要分析

一、简介 EventBus(3.0)、RxJava(RxAndroid)都是常用的解耦框架,目的都是为了让代码中的事件处理独立,减少类与类之间的依赖和耦合。 附上EventBus源码地址:https://github.com/greenrobot/EventBus 二、EventBus(3.0) (1)EventBus(3.0)介绍 首先介绍一个EventBus 3.0 和 2.x的区别

newhope1106的博客 810

EventBus3.0使用

EventBus3.0使用详解

朱利源的博客 2288

EventBus 3.0 事件公交车

EventBus 3.0 使用方法以及使用过程中遇到的一些问题 嗯~本人为Android萌新程序猿一枚 这是我在博客写的第一篇文章,怀着忐忑的心情终于落笔了 各位来自天南海北的再生父母们,喜欢的话可以加个关注,点个赞(能打赏的话那真的是给您磕头了),谢谢铁汁???? 好了,废话不多说,直接开冲 EventBus简介 EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。比如请求网络,等网络返回时通过

weixin_45065275的博客 1097

EventBus 3.0使用

EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。发布者为GreenRobot公司。

陆羽_ 的简单生活 442

EventBus 3.0使用与源码分析

EventBus源码分析EventBus简介 EventBus is a publish/subscribe event bus optimized for Android. EventBus 是一个基于发布/订阅模式的事件总线。其模型图如下 从图可知,EventBus分为四个角色,消息发布者、事件总线、事件、消息订阅者。消息发布者把Event(消息)po

yjm的专栏 3884

【Android】EventBus 3.0 源码分析

概述EventBus是一个基于观察者模式的事件发布/订阅框架,开发者可以通过极少的代码去实现多个模块之间的通信,既可用于 Android 四大组件间通讯,也可以用于异步线程和主线程间通讯,而不需要以Interface回调、handler或者BroadCastReceiver的形式去单独构建通信桥梁。从而降低因多重回调导致的模块间强耦合,同时避免产生大量内部类。这是EventBus源码中的介绍:/**

Mlib 1756

EventBus 3.0进阶:源码及其设计模式 完全解析

前言在上一篇文章:EventBus 3.0初探: 入门使用及其使用 完全解析中,笔者为大家介绍了EventBus 3.0的用法,相信大家对其的使用也比较熟悉了。我们学习使用一个开源库,不但要知道其怎么使用,也要对其的实现原理有一定的熟悉,学习并借鉴它优秀的实现思想,这样对我们以后的开发又或者是自己的开源项目都有很大的意义。那么今天的文章,就是EventBus 3.0的进阶,剖析它的实现原理以及对其使

蓝天白云梦的csdn博客 3533

浅析EventBus 3.0实现思想

最近接触了EventBus,也看了一些源码分析的文章。在此就不再细述其代码的实现细节,主要针对其的设计思想做一些记录,也是自己思考的过程。同时本文尽量以较少的代码来将其主要设计思想说的透彻明白,不会针对细节做过多深入。 基本的事件发布订阅的实现 一般情况下,事件发布订阅机制都是跟观察者模式紧密相连。事件的发布中心都会维持着一组当前的观察者(也可叫做订阅者),这里称之为事件总线,(观察者的注册/...

android开发笔记 370

引入和初始化EventBus3.0

前言EventBus是greenrobot出品的非常优秀的基于发布、订阅模式的一套框架,很早就想写篇文章介绍他的文章,可是一直也没时间写,今天就写篇文章也算总结一下吧。       首先说说EventBus的优点:它是一个基于观察者模式的事件发布/订阅框架,开发者可以通过极少的代码去实现多个模块之间的通信,而不需要以层层传递接口的形式去单独构建通信桥梁。从而降低因多重回调导致的模块间强耦合,同时避...

weixin_42336002的博客 1376

EventBus 3.0 源码分析

1.简介 想必每个入了门的Android开发者都多少对EventBus有过了解,EventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化 Android 事件传递。EventBus使用简单,并将事件发布和订阅充分解耦,从而使代码更简洁。一直以来很受开发者的欢迎,截止到目前EventBus的安装量已经超过一亿次。足以看出EventBus有多么的优秀。 目前网上已经有不少...

lou_liang的博客 253

EventBus3.0架构解析与Android组件通信优化

事件总线(Event Bus)是一种实现组件间解耦通信的设计模式,其核心原理是通过发布-订阅机制将事件发送方与接收方分离。在Android开发中,EventBus3.0通过注解处理器和线程模式控制等技术,显著提升了事件分发的效率和安全性。该框架采用双重检查锁定保证单例线程安全,并支持粘性事件、订阅优先级等高级特性,适用于跨模块通信、状态同步等场景。通过编译时生成订阅者索引(Annotation Processor)和严格的生命周期管理,能有效解决反射性能损耗和内存泄漏问题,是MVVM架构中实现ViewMod

weixin_34379433的博客 458
上一篇: 2017年9月 bug总结
下一篇: 浅析回调机制,这是一篇骚骚的文章
DreamCarMustang
博客等级 码龄12年 10粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值