草庐IT

APB总线

全部标签

Android 事件总线替代方案

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion上下文:在我之前开发的一个Android应用程序中,我使用了一个事件总线(ottobySquare)来处理异步任务结果(例如:结果服务器请求发布在总线上,在应用程序的某个地方我拦截了该响应)。虽然它完成了工作,但在我读到的一些文章中提到使用这样的总线是一个坏主意,因为它被认为是一种反模式。为什么会这样?在处理异步操作的结果时,使用事件总线有哪些替代方案?我知道,大多数时候,没有标准的方法来

android - 奥托事件总线在单个帖子上接收多个事件

我正在使用Otto和Dagger。我的一些Activity仅在一个帖子中多次收到。在我看来,发布事件:@InjectBusmBus;在构造函数中:((MyApplication)mContext.getApplicationContext()).inject(this);view.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(finalViewview){Log.d(TAG,"SendingSearchResultClickedEvent.");mBus.post(newSearchRes

android - 是否可以仅通过 Android 中的单个顶级 Activity 来处理事件总线的事件?

当我们使用事件总线(来自Guava)从服务器获取异步响应时-一切正常。但是,如果我们想在顶部打开同一Activity的另一个实例,那么我们的订阅事件也将在底部(已停止)Activity中处理,这会导致不同的错误来源。是否可以让事件总线的事件仅由来自当前顶级Activity的单个订阅者处理? 最佳答案 当您在销毁之前重新创建Activity时,您可以删除所有粘性事件:-stickyEvent=EventBus.getDefault().getStickyEvent(classType);//Bettercheckthatanevent

android - RxJava 作为 Android 项目中的事件总线——从总线中移除事件

之前一直用EventBus工作,简单易用,容易理解。然而,这一次,我想尝试使用RxJava进行类似事件总线的通信,但是目前还不太清楚如何从RxJava中删除事件,或者更确切地说,应该如何正确设计它以具有与EventBus类似的行为当我调用removeStickyEvent时?在RxJava中,即使我订阅了这个observable,我也可以使用BehaviorSubject最后回复,但是当这个事件被处理时我应该做什么?如果我不想再次重播此事件怎么办?例如,一个fragment触发一个事件然后结束。另一个fragment监听这个事件并处理它。然后,如果此应用程序在不同情况下再次触发该“另一

android - 如何使用 RxJava Observer 而不是事件总线来处理 401、403、503,500 等 HTTP 错误

我正在使用Retrofit、OK-HTTP和RxJava2来处理网络调用,我在下面创建了拦截器来处理网络错误响应对于每个网络调用,有没有更好的方法来处理这个问题?EventBus是这样吗?我不想在每个方法中检查这个错误异常,//HTTP客户端OkHttpClienttempClient=newOkHttpClient.Builder().readTimeout(CONNECT_TIMEOUT_IN_SEC,TimeUnit.SECONDS)//connecttimeout.connectTimeout(CONNECT_TIMEOUT_IN_SEC,TimeUnit.SECONDS)//

java - 如何有效地使用事件总线?

现在我正在探索Android学习项目的一些选项。我正在尝试与我的Railsapi进行通信(也是一个学习项目)。经过一些研究,我想我已经确定了一个使用retrofit和otto的方案。我最终得到的是这个。当我想调用我的Rails服务器(在本例中是为了注册)时,我会在Activity中执行此操作。mBus.post(newSignupRequestEvent(newUserRequestParams(mName,mEmail,mPassword,mPasswordConfirmation)));然后在同一个Activity中我有这个。@SubscribepublicvoidonSignup

android - CAN总线与Android通讯咨询

我想获得有关与Android平板电脑进行CAN总线通信的建议。我正与同事一起从事电动汽车项目。我们在BMS、逆变器和控制逻辑之间进行CAN总线通信。我需要获取数据,比如集群的速度。该集群将是Android平板电脑。我有一个用于CAN和蓝牙适配器的Arduino扩展板,用于将数据发送到平板电脑。我是Android的新手。我应该从什么开始寻找?这些OBD-II代码有效,因为我也需要发送数据。在您看来,我应该在Arduino上解码还是将CAN数据传递给Android并在那里进行处理?数据是COBID/No。字节/数据。(601/8/2298600022000000)我想知道要处理它。例如,如

android - Guava 事件总线不工作

我正在尝试在Android中使用Guava事件总线,但我订阅的事件似乎不起作用...我做错了什么?这是我的Activity:packagetest.eventbus;importcom.google.common.eventbus.EventBus;importcom.google.common.eventbus.Subscribe;importandroid.app.Activity;importandroid.os.Bundle;importandroid.util.Log;publicclassEventBusTestActivityextendsActivity{EventBu

java - 使用 Guava 的 EventBus,可以在创建总线的线程上运行订阅者代码吗?

使用Guava的EventBus,我希望能够从后台线程(称为“后台”)发布到更新UI的特定线程(在本例中为线程“main”)。我认为以下会起作用,但这会从后台线程调用订阅者代码:packagecom.example;importcom.google.common.eventbus.AsyncEventBus;importcom.google.common.eventbus.EventBus;importcom.google.common.eventbus.Subscribe;importcom.google.common.util.concurrent.MoreExecutors;im

java - 事件总线订阅问题(Otto - Guava 事件总线)

为什么没有订阅事件,也没有调用onMyEvent。相关代码如下。Otto在我的使用中正常工作,但下面的场景涉及从回调处理程序发布事件(这是涉及http调用的代码的简化)。不确定这与它有什么关系。我使用Otto(基于Guava事件总线)和Dagger(吉斯)。希望Java专家也能看到我在下面如何注入(inject)和使用总线的任何问题。申请(模块注册)packagecom.example.ottocb;importandroid.app.Application;importandroid.content.Context;importcom.squareup.otto.Bus;import