【问题标题】:What's the correct way to unsubscribe from Single [duplicate]取消订阅 Single 的正确方法是什么 [重复]
【发布时间】:2018-05-30 11:40:10
【问题描述】:

我想在短暂的延迟后做点什么:

public void notifyMe() {
Single
       .timer(500, TimeUnit.MILLISECONDS)
       .subscribeOn(Schedulers.io())
       .subscribe(ignore -> service.notifyMe()));
}

现在我有一个警告:"The result of subscribe is not used"。 我该如何解决?

【问题讨论】:

  • 等等,但在我的示例中只会发出一个值。
  • 这是在 Android 应用程序中吗?如果是这样,您应该将结果添加到CompositeDisposable
  • @akarnokd,在这种情况下,android 和 java(java 测试/控制台应用程序等)有什么不同?以及如何帮助我 CompositeDisposable?无论如何,有人应该调用 dispose。所以,我的问题是:方法 scubscribe() 返回我 Disposable,我应该在发送通知后调用它,对吗?
  • Android 具有更严格的生命周期,并且必须格外小心泄漏流。在桌面 Swing 上,您还应该在用户可以关闭的窗口中执行操作时执行 CompositeDisposable.add()。当不再需要执行该操作时,您应该致电dispose。如果您立即调用它,则不会发生通知。
  • 抱歉@YuraShinkarev,但我以为您是在尝试订阅,而不是退订,所以我之前的评论与此无关。

标签: java rx-java rx-java2


【解决方案1】:

一个 Single 只会调用一次。在调用任一方法时,Single 终止并且对它的订阅结束。

Link 可以参考更多信息。

【讨论】:

    猜你喜欢
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    相关资源
    最近更新 更多