2015-07-29 15 views
5

Tôi làm việc với RxJavaRxAndroid. Làm thế nào tiếp tục công việc của một quan sát nếu một thay đổi cấu hình xảy ra (luân phiên hoạt động, ngôn ngữ thay đổi ngôn ngữ vv)?RxJava: Cách tiếp tục công việc của một quan sát được nếu thay đổi cấu hình xảy ra?

Tôi không chỉ cần tiếp tục công việc của một quan sát được, còn tôi cần lưu các mục phát ra, khi thuê bao bị hủy đăng ký và phát ra tất cả các mục đã lưu ngay sau khi đăng ký.

Tôi đã đọc rất nhiều bài viết, nhưng tôi không tìm thấy câu trả lời cho câu hỏi của mình.

Tôi tìm thấy một vài ví dụ, nhưng không ai trong số họ không giải quyết được vấn đề:

Trả lời

4

Bạn có thể sử dụng một trong số ConnectableObservables. Đặc biệt, cache hoặc replay sẽ thuận tiện cho loại tình huống này.

Ví dụ: bạn có thể gọi cache trên quan sát được, unsubscribe khi hoạt động bị hủy và đăng ký lại sau khi hoạt động được tạo lại.

1

Tôi đã tạo một ứng dụng demo (https://github.com/pmellaaho/RxApp) để thử nghiệm cách xử lý các loại tình huống này. Về cơ bản, tôi sử dụng một mô hình đơn từ Hoạt động để nhận phản hồi từ mạng. Điều này làm cho nó có thể lưu trữ các phản hồi, truy cập dữ liệu từ nhiều thành phần giao diện người dùng, đăng ký yêu cầu đang chờ xử lý và cũng cung cấp dữ liệu giả cho các kiểm tra giao diện người dùng tự động.

1

Bạn có thể sử dụng OperatorFreeze từ library này để tạm dừng Có thể quan sát khi hoạt động đang tạo lại. Bạn cần truyền thể hiện của toán tử này đến phương thức Observable.lift(). Bạn không cần phải hủy đăng ký khỏi Observables khi bạn sử dụng Presenter liên tục.

+0

Vui lòng tuyên bố rằng bạn sở hữu tài nguyên khi đăng tài liệu. Xem [Cách không làm người gửi spam] (https://stackoverflow.com/help/promotion) – LW001

Các vấn đề liên quan