【发布时间】:2015-12-02 14:56:57
【问题描述】:
我今天深入研究了 RxJava。
我有一个将图像转换为位图并将其设置为 Imageview 的 AsyncTask。
我想将我的 AsyncTask 转换为 RxJava
这是我在下面工作的 AsyncTask:
String imageurl = "http://example.com/image.jpg";
new AsyncTask<String, Void, Void>() {
Bitmap theBitmap = null;
@Override
protected Void doInBackground(String... params) {
String TAG = "Message: ";
try {
theBitmap = Glide.
with(mContext).
load(mValues.get(params[0]).
asBitmap().
into(-1, -1).
get();
} catch (final ExecutionException e) {
Log.e(TAG, e.getMessage());
} catch (final InterruptedException e) {
Log.e(TAG, e.getMessage());
} catch (final NullPointerException e) {
Log.e(TAG, e.getMessage());
}
return null;
}
@Override
protected void onPostExecute(Void dummy) {
if (null != theBitmap) {
ImageView mImageView = (ImageView) findViewById(R.id.image);
mImageView.setImageBitmap(theBitmap);
}
}
}.execute(imageurl);
我知道我想提供我尝试过的代码,但我在尝试围绕 RxJava 时遇到问题。我只是需要一些东西开始。
我看到了这个示例代码,它使用 Just where It 将整数传递给 onNext() 函数。 http://reactivex.io/documentation/operators/just.html
Observable.just(1, 2, 3)
.subscribe(new Subscriber<Integer>() {
@Override
public void onNext(Integer item) {
System.out.println("Next: " + item);
}
@Override
public void onError(Throwable error) {
System.err.println("Error: " + error.getMessage());
}
@Override
public void onCompleted() {
System.out.println("Sequence complete.");
}
});
请问,如何转换这段代码,以便像 AsyncTask 一样使用它
【问题讨论】:
-
你需要在文档中进一步了解如何创建 observables 的部分
标签: android android-asynctask rx-java