我正在使用RXJava 2.在subscribe
方法中的一些邏輯之後,我想刪除一個使用過的文件。我想我應該在onComplete
這樣做。但我不能通過我的File
對象。 我的代碼: 問題:RXJava將值傳入onComplete
Observer<Bitmap> observer = new Observer<Bitmap>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Bitmap bitmap) {
if(mImageView.getTag().toString().equals(TAG)) {
mImageView.setImageBitmap(bitmap);
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
// outputFile.delete();
}
};
Observable<Bitmap> observable = Observable.create(new ObservableOnSubscribe<Bitmap>() {
@Override
public void subscribe(ObservableEmitter<Bitmap> e) throws Exception {
File outputFile = new File(newTAG);
// do some stuff with a file
Bitmap bitmap = decodeSampledBitmapFromUrl(newTAG, width, height);
e.onNext(bitmap);
// now I need to delete a file
e.onComplete();
}
}
);
observable.subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread()).subscribe(observer);
- 如何通過一個
outputFile
到onComplete
? - 有沒有辦法在一個事件或少量代碼中創建observable和subcride?
1)使用元組類型並將文件存儲在您的觀察者中。 2)可以將常見代碼分解爲方法,但除此之外,您始終爲Observable創建1個實例,爲Observer創建1個實例。 – akarnokd
如果我在onComplete方法裏面刪除我的文件,它會在主線程中執行嗎? – Rainmaker