Ví dụ về cách sử dụng CompositeDisposable hoặc Disposable trong RxJava2. Trong RxJava 1, đã có CompositeSubscription, nhưng đó không phải là hiện diện trong RxJava2, Có một cái gì đó CompositeDisposable trong rxJava2. Cách sử dụng CompositeDisposable hoặc Disposable trong RxJava2.Làm thế nào để sử dụng CompositeDisposable của RxJava 2?
41
A
Trả lời
74
private final CompositeDisposable disposables = new CompositeDisposable();
// adding an Observable to the disposable
disposables.add(sampleObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new DisposableObserver<String>() {
@Override
public void onComplete() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String value) {
}
}));
static Observable<String> sampleObservable() {
return Observable.defer(new Callable<ObservableSource<? extends String>>() {
@Override
public ObservableSource<? extends String> call() throws Exception {
// Do some long running operation
SystemClock.sleep(2000);
return Observable.just("one", "two", "three", "four", "five");
}
});
}
// Using clear will clear all, but can accept new disposable
disposables.clear();
// Using dispose will clear all and set isDisposed = true, so it will not accept any new disposable
disposables.dispose();
Tôi có một dự án mẫu để minh họa việc sử dụng RxJava2. Ở đây bạn có thể tìm thấy sample project - RxJava2-Android-Samples
0
// clearing or unsubscibing
disposables.clear();
nơi này sử dụng dispose()
+9
Đây không phải là một lời khuyên tốt, vì bạn không thể đăng ký lại với một quan sát sau khi vứt bỏ(). – box
Các vấn đề liên quan
- 1. Làm thế nào để sử dụng Flowable trong RxJava 2?
- 2. Làm thế nào để sử dụng RxJava Interval hành
- 3. Làm thế nào để sử dụng Less với Angular 2?
- 4. Swift 2 & 3: Làm thế nào để sử dụng CGBitmapContextCreate
- 5. Làm thế nào để giữ thuê bao sau onerror (RxJava)
- 6. Xử lý lỗi mạng trong Rxjava 2 - Trang bị thêm 2
- 7. Làm thế nào để chuỗi nhiều phương pháp RxJava của groupby() như groupby() groupby()
- 8. Cách sử dụng TestScheduler trong RxJava
- 9. Làm cách nào để chạy 2 truy vấn tuần tự trong Android RxJava Observable?
- 10. làm thế nào để sử dụng python của bất kỳ
- 11. RxJava và Sqlbrite - toán tử nào sử dụng
- 12. Rxjava 2 ngoại lệ với camera
- 13. Làm thế nào để kết hợp ứng dụng Angular 2 Typescript sử dụng Gulp và SystemJS?
- 14. Làm thế nào để gọi một phương pháp sau một sự chậm trễ trong android bằng cách sử dụng rxjava?
- 15. RxJava/Retrofit - Làm cách nào để buộc người dùng sử dụng một lớp con cụ thể của Người đăng ký?
- 16. ASP.NET MVC 2 - Làm cách nào để sử dụng DropDownListFor?
- 17. Làm thế nào để kiểm tra rằng có thể quan sát sử dụng đúng lịch trong RxJava?
- 18. Làm thế nào để sử dụng AutoMapper?
- 19. Làm thế nào để sử dụng StateListAnimator?
- 20. Làm thế nào để sử dụng tempfile của Python.NamedTemporaryFile()?
- 21. Làm thế nào để sử dụng assert_raises của mũi?
- 22. Làm thế nào để sử dụng git mergetool của FileMerge
- 23. Làm thế nào để sử dụng Injector của Guice?
- 24. Làm thế nào để sử dụng học tập của Hebbian?
- 25. Làm thế nào để sử dụng regex_iterator của C++ Boost()
- 26. Làm thế nào để sử dụng RequestLogger của Restify?
- 27. Làm thế nào để in lọ phụ thuộc để sử dụng trong một biến môi trường?
- 28. Sử dụng CSS làm cách nào để chỉ thay đổi cột thứ 2 của bảng
- 29. Làm thế nào để sử dụng MatPaginatorIntl?
- 30. Làm thế nào để sử dụng AngularJS 2 mà không cần npm và Node.js?
Tại sao họ loại bỏ thuê bao? –
@anandgaurav: Họ đã viết rxJava2 từ đầu để họ tạo ra apis tốt hơn. –
bạn cũng có thể sử dụng từCallable thay vì trì hoãn –