gpt4 book ai didi

android - 在Android分页库数据源内部处理Observable

转载 作者:行者123 更新时间:2023-12-02 13:29:45 26 4
gpt4 key购买 nike

我想观察用户退出片段导致数据源破坏之后,PageKeyedDataSource内部的网络 call 更改以及RxJava 订阅的处置。

class ProjectDataSource : PageKeyedDataSource<Int, ProjectPresenter>(), KoinComponent {
...

override fun loadInitial(
params: LoadInitialParams<Int>,
callback: LoadInitialCallback<Int, ProjectPresenter>
) {
val subscription = mProjectRepository.getProjects(DEFAULT_TAKE, 0)
.subscribe(
{ projectPresenters ->
...
},
{ throwable ->
...
}
)
//Where to dispose `subscription`
}

...
}

我的 存储库数据源中都有RxJava订阅,它们都对数据执行不同的操作。存储库将远程模型转换为演示者模型,并...

我不太确定在DataSource中观察数据是否是个好主意。

最佳答案

我无法提供任何实质性的证明,我的方法是“正确的方法”,但这是我的想法,通常会在实现过程中遵循:

  • 除非有某些特殊情况,否则我不会处理存储库或数据源中的
  • 如果我的存储库使用Rx,我只是将所有Rx实体(Completable,Single等)暴露给使用者(通常是 View 模型),它们进行订阅并管理处置(在许多情况下,通过onCleared清除它们)
  • 如果我的分页数据源使用Rx(顺便说一句,它可能在无效期间导致不必要的UI效果,最好在数据源loadInitial和类似方法中运行阻塞操作),我正在将CompositeDisposable实例从 View 模型路由到数据源厂。
  • 关于android - 在Android分页库数据源内部处理Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62112927/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com