【问题标题】:Where to clear CompositeDisposable in RecyclerView.Adapter在 RecyclerView.Adapter 中清除 CompositeDisposable 的位置
【发布时间】:2019-08-22 12:56:49
【问题描述】:

假设我们的RecyclerView.Adapter 中有一些Disposable,我们将它们添加到CompositeDisposable
哪个Adapter方法回调是clear()CompositeDisposable的最佳选择?

目前我在onDetachedFromRecyclerView 上做过。我想确定这是多么正确。

【问题讨论】:

  • 好吧,你应该在 recyclerview 中使用 rx 吗?
  • 这是一个收件箱(邮件列表),一次性邮件是对deleteMessagereadMessage 等操作的响应。它有什么问题? @a_local_nobody
  • 好吧,你可以实现一个回调来将这些操作移到一个视图模型之类的东西上,然后像往常一样处理那里的一次性用品:D
  • 我是盲人,但现在我可以看到@a_local_nobody
  • 希望这会有所帮助,我假设您知道如何实现回调来处理此问题,否则您可以尝试重做我在这里所做的一些事情:stackoverflow.com/questions/57330766/…

标签: android android-recyclerview rx-java rx-java2 disposable


【解决方案1】:

如果你能提供适配器的代码会更容易回答。 一般来说,Disposable 应该针对您的业务逻辑和包含生命周期的组件进行处置。

我还要说最好不要在 RecyclerView 适配器内部使用 Rx。以下是好处:

  • 适配器逻辑保持简单和同步。
  • 在开发适配器时无需考虑可能的生命周期或多线程问题。
  • Rx 流总是分配大量内存,因此(如果我们谈论 RecyclerView)将它们放入错误的位置可能会导致性能问题。

所以,我建议将 Rx 流移动到 Presenter/ViewModel 或类似组件中。

【讨论】:

    猜你喜欢
    • 2020-11-09
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多