标签: event-bus

EventBus和RxJava有什么区别?

我对android中的EventBus和RxJava之间的区别感到困惑.我需要为我的问题实现其中一个关于在完成一些更改时通知某些组件的问题,以便他们可以更新其状态.
另外,我读到EventsBus已经被RxJava弃用了,我不知道这些信息是否属实.

android event-bus rx-java

50
推荐指数
2
解决办法
1万
查看次数

使用像Otto或EventBus这样的事件库是一种处理活动,片段和后台线程之间关系的推荐方法

在大多数情况下,处理案件时

  • 用户thread(AsyncTask)执行后台处理
  • 将计算结果传回给ActivityFragment
  • Activity或者Fragment在用户线程完成后台处理之前可能会重新创建

到目前为止,从许多可靠的来源,我可以看到推荐的方法是使用 保留片段

来源

我不时地听说事件总线库可以处理活动,片段和后台线程之间的关系.(请参阅https://github.com/greenrobot/EventBus.它表示在活动,片段和后台线程表现良好)

我遇到了一些非常受欢迎的事件总线库

我想知道,当处理活动,碎片和后台线程之间的关系时,事件总线方法与保留碎片方法有何不同?

推荐哪种方式?

android event-bus android-asynctask otto greenrobot-eventbus

44
推荐指数
1
解决办法
2万
查看次数

EventBus/PubSub vs(反应式扩展)RX关于单线程应用程序中的代码清晰度

目前,我正在使用带有Scala(和JavaFX)的EventBus/PubSub架构/模式来实现一个简单的笔记组织应用程序(有点像Evernote客户端,带有一些添加的思维导图功能),我不得不说我真的很喜欢EventBus观察者模式.

以下是一些EventBus库:

https://code.google.com/p/guava-libraries/wiki/EventBusExplained

http://eventbus.org(目前似乎已经失效)这是我在实施中使用的那个.

http://greenrobot.github.io/EventBus/

以下是EventBus库的比较:http://codeblock.engio.net/37/

EventBus与发布 - 订阅模式相关.

但是!

最近,我参加了CourseraReactive课程并开始怀疑使用RXJava而不是EventBus是否会在单线程应用程序中简化事件处理代码?

我想问一下关于使用这两种技术(某种eventbus库谁编程的人的经验某种形式的反应扩展(RX)):是很容易解决的事件处理使用RX复杂性比与事件总线架构给出没有必要使用多个线程

我问这个,因为我已经在听到无功讲座CourseraRX(即没有"回调地狱")导致更清洁的代码比使用观察者模式,但是我没有找到VS EventBus架构之间的任何比较RXJava.所以很明显,EventBus和RXJava都比观察者模式更好,但 在代码清晰度和可维护性方面,它在单线程应用程序更好

如果我理解正确的话,RXJava的主要卖点是,如果存在阻塞操作(例如,等待来自服务器的响应),它可用于生成响应式应用程序.

但我根本不关心异步性,我所关心的只是在单线程应用程序中保持代码清洁,解开并易于推理.

在这种情况下,使用RXJava比使用EventBus更好吗?

我认为EventBus将是一个更简单,更清晰的解决方案,我认为没有任何理由可以将RXJava用于单线程应用程序,而采用简单的EventBus架构.

但我可能错了!

如果我错了,请纠正我,并解释为什么RXJava在单线程应用程序中没有执行阻塞操作的情况下比简单的EventBus更好.

event-handling reactive-programming system.reactive event-bus rx-java

37
推荐指数
2
解决办法
1万
查看次数

事件驱动架构的jQuery插件?

有没有Event Driven Architecture jQuery插件?

第1步:订阅

替代文字
订阅者在中间订阅事件处理程序,并传递回调方法,以及他们正在侦听的事件的名称......

即两个绿色用户将监听p0事件.蓝色用户将收听p1事件.


第2步:p0事件由另一个组件触发到事件处理程序

替代文字

  1. 向事件处理程序触发p0事件
  2. 事件处理程序通知它的订阅者事件,调用他们在步骤1:订阅中订阅时指定的回调方法.

请注意,蓝色订阅者不会收到通知,因为它没有侦听p0事件.


第3步:向事件处理程序触发p1事件组件

替代文字

p1事件由另一个组件触发

与以前一样,除了现在蓝色订阅者通过其回调接收事件,而其他两个绿色订阅者不接收该事件.

图片来自leeand00,在Flickr上

我似乎无法找到一个,但我猜他们只是在Javascript/jquery中称之为其他东西

这个模式还有一个名字吗?因为它不仅仅是一个基本的发布者/订阅者,它必须被称为我想的其他东西.

javascript event-driven-design jquery-plugins publish-subscribe event-bus

30
推荐指数
2
解决办法
1万
查看次数

EventBus - Subscriber类及其超类没有@subscribe注释的公共方法

我正在使用EventBus创建一个Android应用程序,用于将异步广播发布到其他类,但我在执行期间遇到了错误.

MainActivity.java

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.google.android.gms.maps.model.LatLng;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;


public class MainActivity extends AppCompatActivity {

    //Globals
    public String uname = null;
    public double lat = 0;
    public double lng = 0;

    //Get GUI handles
    public Button sendButton; //
    public EditText username;
    public Button MapButton; //
    public EditText LatBox;
    public EditText LngBox;


    protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        //register EventBus
        EventBus.getDefault().register(this); …
Run Code Online (Sandbox Code Playgroud)

android event-bus greenrobot-eventbus

27
推荐指数
7
解决办法
3万
查看次数

何时使用事件总线?

我正在设计一个新的Java Web应用程序的后端,我正在尝试决定是否使用事件总线; 特别是番石榴EventBus.

大多数服务器端请求都是同步的:即,用户正在请求数据并需要在几秒钟内响应.但是,也有相当多的请求可以是异步的,并且在客户端是"一劳永逸".只要它们最终被处理,如果需要2秒钟处理或2小时,客户可以更少关心.

对于这些异步请求,我计划让servlet监听映射的URL,将请求发布到队列.然后,消费者将每个请求出列并将其路由到适当的处理程序.这是EventBus可能会或可能不会发挥作用的地方.将请求路由到正确的处理程序的业务逻辑非常复杂.通常情况下,骆驼路线将是完美的解决方案.在我的用例中,我想知道我是否可以将一堆"处理器"(事件处理程序)连接到同一个事件总线,然后让每个事件相互触发和接收事件,直到最终结果为止.产生的.

我想说我已经探索过使用Apache Camel,并且我相信Camel是这里工作的合适工具.可悲的是,由于这个问题范围之外的原因,我不打算使用它.所以我开始想起类似Camel的解决方案,这就是我到达Guava的方式EventBus.但它可能不是一个合适的替代品.

我想我正在寻找Event Bus模式解决的问题分类,然后我需要确定这是否符合我的用例.

java guava event-bus

24
推荐指数
1
解决办法
2万
查看次数

EventBus vs Callbacks,什么时候使用?

我有许多活动可以提高后台工作; 活动将在实现侦听器回调时自行传递,以便后台任务可以在活动上引发事件.反过来,活动可以在UI上显示某些内容,以指示后台活动已通过或失败.

或者,我可以使用EventBus,其中我将Activity注册为侦听器/订阅者.我可以让后台任务在EventBus上引发一个事件,而侦听它的Activity可以处理它.

一个优于另一个的优点是什么?你什么时候用一个而不是另一个?(代码清洁度?性能?警告?)


跟进 - 我最终使用了EventBus.代码肯定是更清洁,没有回调挂在任何地方.IDE(IntelliJ)认为onEvent方法未使用,因此我创建了一个注释

@Target({ElementType.METHOD})
public @interface EventBusHook {}
Run Code Online (Sandbox Code Playgroud)

并把它放在我的onEvent方法上.然后Alt +单击它并要求IntelliJ不将其视为未使用.

@EventBusHook
public void onEvent(MyEventType myEventType){
Run Code Online (Sandbox Code Playgroud)

android callback event-bus

21
推荐指数
2
解决办法
7512
查看次数

Akka事件总线教程

关于如何在akka中使用事件总线,有没有很好的教程/解释?我已经阅读了Akka文档,但我发现很难理解如何使用事件总线

scala akka event-bus

16
推荐指数
2
解决办法
9025
查看次数

Greenrobot EventBus和Guava的EventBus之间的差异

我经常使用来自greenrobot的EventBus

https://github.com/greenrobot/EventBus

但我刚才意识到Guava有自己的EventBus

com.google.common.eventbus.EventBus

有人知道是否存在很大差异?

android event-bus greenrobot-eventbus

16
推荐指数
2
解决办法
5751
查看次数

EventBus:当应用在后台时,活动不会收到活动

我使用EventBus之间的沟通ActivityService.今天我遇到了问题,不知道为什么.

  1. 我有Activity,FragmentService.所有这些都很好.

  2. ActivityFragment我们registered他们Receive events交付Service

  3. ActivityFragmentun-register他们的时候onDestroy()被调用.

  4. 在正常情况下,当Services提供events,FragmentActivity可以接收这些events,做工精良.

  5. 但是,当App上推background(通过按下Home或电源按钮),只Fragment接收从交付的事件Service,以及Activity不接收他们.

  6. 我没有做任何事情onPause()都的ActivityFragment.

题:

那有什么解释吗?如何在应用程序被推送到后台时才能完成Activity接收事件Fragment

service android background-process event-bus android-fragments

16
推荐指数
3
解决办法
6268
查看次数