我正在使用MVP和RxJava开发Android应用程序。好的,我有一个疑问:
当我创建我的Presenter和Interactor时,我可以将Schedulers放在Presenter中,就像这样:
Presenter中的Schedulers
Presenter:
或者我可以在Interactor中设置Schedulers,像这样:
在Interactor中设置Schedulers
Presenter:
我看到谷歌建议在Interactor中设置Schedulers。您可以在此链接中查看:https://github.com/googlesamples/android-architecture/tree/todo-mvp-rxjava/。
但是,许多人将代码放在Presenter中,就像这个例子:https://github.com/BoydHogerheijde/Android-MVP-example/blob/master/app/src/main/java/nl/bhogerheijde/example/rxmvp/interactor/Interactor.java。
所以,我应该在Presenter还是Interactor中设置Schedulers?
(我认为将其放在Presenter中更好,因为Interactor的工作只是获取数据,但也许我错了...)
当我创建我的Presenter和Interactor时,我可以将Schedulers放在Presenter中,就像这样:
Presenter中的Schedulers
Presenter:
override fun tryLogin(username: String, password: String) {
mLoginInteractor.login(username, password)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Subscriber<User>(){
[...]
}
登录交互器:
override fun login(username: String, password: String) =
mRetrofit.create(ApiClient::class.java).login()
或者我可以在Interactor中设置Schedulers,像这样:
在Interactor中设置Schedulers
Presenter:
override fun tryLogin(username: String, password: String) {
mLoginInteractor.login(username, password)
.subscribe(object : Subscriber<User>(){
[...]
}
登录交互器:
override fun login(username: String, password: String) =
mRetrofit.create(ApiClient::class.java).login()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
我看到谷歌建议在Interactor中设置Schedulers。您可以在此链接中查看:https://github.com/googlesamples/android-architecture/tree/todo-mvp-rxjava/。
但是,许多人将代码放在Presenter中,就像这个例子:https://github.com/BoydHogerheijde/Android-MVP-example/blob/master/app/src/main/java/nl/bhogerheijde/example/rxmvp/interactor/Interactor.java。
所以,我应该在Presenter还是Interactor中设置Schedulers?
(我认为将其放在Presenter中更好,因为Interactor的工作只是获取数据,但也许我错了...)