代码之家  ›  专栏  ›  技术社区  ›  Amir Ebrahimi

RxJava多线程

  •  -2
  • Amir Ebrahimi  · 技术社区  · 8 年前

    我对Android中的RxJava有一个问题,我对RxJava和反应式编程的概念还比较陌生。我在想,如果有一种方法,在android中使用RxJava,我们可以在一个带有改装和RxJava的活动中开始下载,例如,在下载开始后,我们退出活动或关闭活动,但我们仍然希望通过某种方式听下载完成。如果有人对此有任何了解,请分享。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Appyx    8 年前

    我会使用JobIntentService(用于Android Oreo兼容性)进行下载,该服务通过PublishSubject发布进度。每个活动都可以在某个时间点订阅服务。

    重要的是,当应用程序进入后台执行时,活动会处理其订阅。 在这种情况下,Disposing不会取消下载,订阅也不会重新启动下载,因为您使用的是热可观察对象(PublishSubject)。

    进度将在下一页发布。 完成了。 任何错误。

    对于主题的全局访问,可以使用单例。

    另一件重要的事情是,每个订阅者都切换到主线程(在订阅之前使用observeOn(AndroidSchedulers.MainThread)函数),以便您可以修改UI。

    玩得开心:)