Android Event Bus相关应用 [已关闭]

Android Event Bus Alternative [closed]

提问人:Ionut Ciuta 提问时间:2/8/2016 更新时间:2/8/2016 访问量:3211

问:


想改进这个问题吗?更新问题,以便可以通过编辑这篇文章来用事实和引文来回答。

7年前关闭。

上下文:在我之前开发的 Android 应用程序中,我使用事件总线(Square的otto)来处理异步任务结果(例如:服务器请求的结果发布在线上,并在应用程序的某个地方拦截该响应)。虽然它完成了这项工作,但在我读到的一些文章中提到,使用这样的总线是一个相当糟糕的主意,因为它被认为是一种反模式

为什么会这样?在处理异步操作的结果时,除了使用事件总线之外,还有哪些替代方法?我知道,大多数时候,没有标准的处理方式,但有没有“更规范”的方法?

Android-asyncTask 奥托

评论

1赞 skywall 2/8/2016
RxJava - github.com/ReactiveX/RxJava

答:

6赞 mihirjoshi 2/8/2016 #1

用于异步网络调用。 提供开箱即用的支持。RxJavaRetrofitRxJavaRetrofit

从改造界面返回。Observable

@GET("/posts/{id}")
public Observable<Post> getData(@Path("id") int postId);

在您的活动课程中使用它 -

retrofitBuilderClass.getApi()
 .getData()
 .subscribeOn(Schedulers.newThread())
 .observeOn(AndroidSchedulers.mainThread())
 .subscribe(new Observer < List < Data >> () {
  @Override
  public void onCompleted() {

  }

  @Override
  public void onError(Throwable e) {

  }

  @Override
  public void onNext(List < Data > data) {
  // Display data
  }
 });

评论

0赞 Ionut Ciuta 2/8/2016
这太酷了!它完全符合我的需求,因为我已经在使用 Retrofit!谢谢!