我想在我的PageKeyedDataSource里面观察我的网络调用的变化,并处理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订阅 储存库 和 数据源 都对数据进行不同的操作。Repository将远程模型转换为presenter模型,并 ...
我不太确定在DataSource里面观察数据是个好主意。
我无法提供任何实质性的证据证明我的方式是 "正确的方式",但这是我的想法,也是我在实现中通常遵循的方式。
onCleared
)loadInitial
和方法一样),我正在路由 CompositeDisposable
从视图模型通过数据源工厂的实例。