【发布时间】:2015-04-16 09:22:13
【问题描述】:
我正在尝试在 Android 中使用 RxJava 实现异步任务。 我尝试了以下代码,但没有成功。它在 UI 线程上执行。我正在使用以下版本的 RxAndroid 0.24.0。
try {
Observable.just(someMethodWhichThrowsException())
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(s -> onMergeComplete());
}
catch (IOException e) {
e.printStackTrace();
}
但是,以下内容对我来说是异步的。
Observable observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
try {
someMethodWhichThrowsException();
} catch (IOException e) {
e.printStackTrace();
}
subscriber.onCompleted();
}
});
observable.subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread()).subscribe();
我正在尝试理解以下内容:
- 它们有什么区别?
- 创建异步任务时的最佳做法是什么?
【问题讨论】:
标签: android android-asynctask rx-java