EventBus的粘性事件】的更多相关文章

下午赶去公司解决了电台业务首次语音搜台后(用到服务,但只出一个独立的Activity,主界面并没有打开)不能听歌识曲的问题. 排查到最后,去识别的消息确实是发出去了,但是却没有收到,没有收到消息当然不会响应.最后,消息是通过EventBus.getDefault.post(xx)发出的,一定是发送和接收出现问题. 推测该问题是由于主界面还未创建,用于接收的EventBus还未注册,即发布者发了消息,但订阅者还未产生(一般消息的处理逻辑是先注册订阅,后接收),这样没有收到消息当然无法响应操作. 了…
注解问题 EventBus 的 粘性事件,可以让 成功注册后的 Activity.Fragment 后再接收处理 这一事件. 但是今晚写代码时,突然发现粘性事件,发送不成功了.??? 具体情况是:我在Activity1 向 Activity 2 发送了 粘性事件 ,但是 Activity2 却接收不了这个粘性事件了.这究竟是咋回事,首先从Activity的注册事件到发送EventBus粘性事件的时机再到EventBus工具类都检查了一遍,最后发现,妈耶,接收EventBus事件的处理函数忘记打上…
代码里面发送粘性事件代码如下: // 发送Sticky事件 EventBus.getDefault().postSticky(new User("soyoungboy", "西安财经学院"), "soyoungboy"); 然后我们进入postSticky方法里面去: EventType 是什么? 该类是描述一个函数唯一性的对象,参数类型.tag两个条件保证了对象的唯一性.通过该类的对象来查找注册了相应类型和tag的所有订阅者{@see* Sub…
[Shashlik.EventBus].NET 事件总线,分布式事务最终一致性 简介 github https://github.com/dotnet-shashlik/shashlik.eventbus 各位爷高兴了给个star呗. 分布式事务.CAP定理.事件总线,在当前微服务.分布式.集群大行其道的架构前提下,是不可逃避的几个关键字,在此不会过多阐述相关的理论知识.Shashlik.EventBus就是一个基于.NET6的开源事件总线解决方案,同时也是分布式事务最终一致性.延迟事件解决方案…
什么是Sticky事件? 关于Sticky事件有的同学可能不是很熟悉,Sticky的意思是粘性的.在Android开 发中,Sticky事件只指事件消费者在事件发布之后才注册的也能接收到该事件的特殊类型.Android中就有这样的实例,也就是Sticky Broadcast,即粘性广播.正常情况下如果发送者发送了某个广播,而接收者在这个广播发送后才注册自己的Receiver,这时接收者便无法接收到 刚才的广播,为此Android引入了StickyBroadcast,在广播发送结束后会保存刚刚发送…
根据阿里发布的Android开发规范:下载地址:https://102.alibaba.com/downloadFile.do?file=1520478361732/Android_v9.pdf Activity 间的数据通信,对于数据量比较大的,避免使用 Intent + Parcelable的方式,可以考虑 EventBus 等替代方案,以免造成 TransactionTooLargeException. A界面 跳转到 B界面,传对象. 但是用普通的EventBus方法[ EventBus…
Intent知识详解 一.什么是Intent 贴一个官方解释: An intent is an abstract description of an operation to be performed. It can be used with Context#startActivity(Intent) to launch an android.app.Activity , broadcastIntent to send it to any interested BroadcastReceiver…
原理 一句话描述:register会把当前类中匹配的方法,存入一个map,而post会根据实参去map查找进行反射调用 撇开专业术语,其实EventBus就是在内部[存储]了一堆onEvent开头的方法,然后post的时候,根据post传入的[参数],去找到匹配的方法,[反射]调用之. 另外,它内部使用了[Map]进行存储,[键就是参数的Class类型].知道是这个类型,那么你觉得根据post传入的参数进行查找还是个事么? 其实不用发布者,订阅者,事件,总线这几个词或许更好理解,以后大家问了Ev…
简介 地址:https://github.com/greenrobot/EventBus EventBus是一个[发布 / 订阅]的事件总线.简单点说,就是两人[约定]好怎么通信,一人发布消息,另外一个约定好的人立马接收到你发的消息. EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息. 优点:开销小,代码更优雅,将发送者和接收者解耦. 用处:相信大…
本文由云+社区发表 事件总线核心逻辑的实现. EventBus的作用 Android中存在各种通信场景,如Activity之间的跳转,Activity与Fragment以及其他组件之间的交互,以及在某个耗时操作(如请求网络)之后的callback回调等,互相之之间往往需要持有对方的引用,每个场景的写法也有差异,导致耦合性较高且不便维护.以Activity和Fragment的通信为例,官方做法是实现一个接口,然后持有对方的引用,再强行转成接口类型,导致耦合度偏高.再以Activity的返回为例,一…