Rx java 谁负责在RxJava/RxAndroid、caller'中执行线程;s或被叫人';s
在RxJava/RxAndroid中,通常需要强制执行线程,尤其是在执行网络操作时,例如:Rx java 谁负责在RxJava/RxAndroid、caller'中执行线程;s或被叫人';s,rx-java,rx-android,Rx Java,Rx Android,在RxJava/RxAndroid中,通常需要强制执行线程,尤其是在执行网络操作时,例如: Single.fromCallable(/*download*/) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) 在静态方法或方法中支持单个,以下哪一项更有意义: public static Single<File> download(URL url) {
Single.fromCallable(/*download*/)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
在静态方法或方法中支持单个,以下哪一项更有意义:
public static Single<File> download(URL url) {
return Single.fromCallable(/*download*/);
}
public static Single<File> download(URL url) {
return Single.fromCallable(/*download*/)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
公共静态单一下载(URL){
返回Single.fromCallable(/*下载*/);
}
公共静态单一下载(URL){
返回Single.fromCallable(/*下载*/)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
基本上,谁的职责是执行线程,调用方的还是被调用方的以及为什么?只处理源的订阅部分更有意义。如果线程根本不重要,也可以跳过它。否则,你就知道这个地方对螺纹的要求了
public static Single<File> download(URL url) {
return Single.fromCallable(/*download*/)
.subscribeOn(Schedulers.io());
}
您还可以使用该方法定义它,或者使用其他命名约定,如downloadOnIo
public static Single<File> download(URL url, Scheduler subscribeOn) {
return Single.fromCallable(/*download*/)
.subscribeOn(subscribeOn);
}
公共静态单次下载(URL、调度程序订阅){
返回Single.fromCallable(/*下载*/)
.subscribeOn(subscribeOn);
}
这取决于您的习惯。您可以评论它将在IO线程上运行的方法,或者直接将其名称更改为downloadOnIO
。我同意您的看法,我开始在我的项目中意识到这一点。
public static Single<File> download(URL url, Scheduler subscribeOn) {
return Single.fromCallable(/*download*/)
.subscribeOn(subscribeOn);
}