2015-07-29 12 views
5

मैं RxJava और RxAndroid के साथ काम करता हूं। यदि कॉन्फ़िगरेशन परिवर्तन होता है (गतिविधि रोटेशन, भाषा लोकेल चेंज इत्यादि) एक अवलोकन योग्य के काम को फिर से शुरू कैसे करें?RxJava: कॉन्फ़िगरेशन परिवर्तन होने पर एक अवलोकन योग्य के काम को फिर से शुरू कैसे करें?

मुझे केवल एक अवलोकन योग्य के काम को फिर से शुरू करने की आवश्यकता नहीं है, मुझे सब्सक्राइब की सदस्यता के तुरंत बाद सभी सहेजे गए आइटमों को छोड़कर उत्सर्जित वस्तुओं को सहेजने की आवश्यकता है।

मैंने लेखों का एक टन पढ़ा, लेकिन मुझे अपने प्रश्न का उत्तर नहीं मिला।

मैं कुछ उदाहरण पाया है, लेकिन उनमें से कोई भी समस्या का समाधान नहीं करता है:

उत्तर

4

आप में से एक का उपयोग कर सकते ConnectableObservables। विशेष रूप से, cache या replay इस तरह की स्थिति के लिए आसान होगा।

उदाहरण के लिए, आप cache पर अपने अवलोकन योग्य, unsubscribe पर कॉल कर सकते हैं, जब गतिविधि नष्ट हो जाती है, और गतिविधि को फिर से बनाया जाने के बाद इसे फिर से सदस्यता लेना पड़ता है।

1

मैंने इस तरह की स्थितियों से निपटने के लिए प्रयोग करने के लिए डेमो एप्लिकेशन (https://github.com/pmellaaho/RxApp) बनाया है। असल में, मैं नेटवर्क से प्रतिक्रिया प्राप्त करने के लिए गतिविधि से सिंगलटन मॉडल का उपयोग करता हूं। इससे प्रतिक्रियाओं को कैश करना, एकाधिक यूआई घटकों से डेटा तक पहुंच बनाना, लंबित अनुरोध की सदस्यता लेना और स्वचालित यूआई परीक्षणों के लिए नकली डेटा भी प्रदान करना संभव बनाता है।

1

गतिविधि पुनर्निर्माण करते समय अवलोकन करने के लिए आप इस library से ऑपरेटर फ़्रीज़ का उपयोग कर सकते हैं। आपको पर्यवेक्षक.लिफ्ट() विधि के लिए इस ऑपरेटर के पास आवृत्ति की आवश्यकता है। जब आप निरंतर प्रस्तुतकर्ता का उपयोग करते हैं तो आपको ऑब्जर्वेबल्स से सदस्यता समाप्त करने की आवश्यकता नहीं होती है।

+0

कृपया यह घोषणा करें कि इसे पोस्ट करते समय आपके पास संसाधन है। देखें [स्पैमर कैसे नहीं बनें] (https://stackoverflow.com/help/promotion) – LW001

संबंधित मुद्दे