Introduction

Bạn đã biết rằng cơ chế chung cho mọi hoạt động RxJava trông giống như sau:

  • Tạo 1 Observable<T>
  • Đặt các thuộc tính đăng ký chuỗi của Observable (subscribeOn () và ObserOn ())
  • Đăng ký Observable bằng Observer
Nhưng điều gì xảy ra với Observer khi một kết quả đã được truy xuất? Hay nói cách khác, điều gì sẽ xảy ra với Observer khi nó không còn cần thiết nữa ?.

Đó là lý do tồn tại khái niệm đồ dùng một lần. Tất cả observers đều dùng một lần. Đó là, tất cả các Observer thực hiện DisposableObserver interface.

What Problem does Disposables Solve?

Tui nghĩ rằng cách đặt tên đã diễn tả rất tốt ý nghĩa của việc dùng một lần. Đối tượng dùng một lần chính xác là dùng một lần.

Sẽ chẳng ích gì khi nghe một luồng dữ liệu phản ứng nếu nó không còn cần thiết nữa. Đánh dấu thứ gì đó là dùng một lần giúp dễ dàng loại bỏ người quan sát khỏi người có thể quan sát được.

Example

The Observable:

The Observer:

Lưu ý rằng phương thức onSubscribe (Disposable d) hiển thị một đối tượng Disposable. Loại Disposable đó có thể được sử dụng khi chúng ta sử dụng xong observer.

Đây là cách bạn sử dụng nó:

Khởi tạo một đối tượng CompositeDisposable mới. Thông thường, đây sẽ là một biến toàn cục bên trong Activity hoặc ViewModel của bạn.

CompositeDisposable disposables = new CompositeDisposable();


Thêm disposable vào CompositeDisposable.

@Override
public void onSubscribe(Disposable d) {
    disposables.add(d);
}


Sau đó, khi Observer không còn cần thiết nữa, hãy xóa các mục dùng một lần. Một nơi tốt để thực hiện việc này là trong phương thức onDestroy() của một Activity hoặc Fragment. Hoặc trong phương thức onCleared() của ViewModel.

disposables.clear();


4 تعليقات

Cảm ơn bạn đã quan tâm và bày tỏ :D

إرسال تعليق

Cảm ơn bạn đã quan tâm và bày tỏ :D

أحدث أقدم