2015-08-27 10 views
29

मैंने here पढ़ा है कि हम घूर्णन को संभालने के लिए कुछ वैश्विक कैश का उपयोग कर सकते हैं।गतिविधि में रेट्रोफिट और आरएक्सजेवा/आरएक्स एंड्रॉइड के साथ घूर्णन को कैसे संभालें?

आप इस कैश का उपयोग करके या प्रत्यक्ष किसी भी तरह की गतिविधि जीवन चक्र बचता (उदाहरण के लिए एक वैश्विक कैश में भंडारण, एक टुकड़ा में से, आदि) को रोकने के प्रत्यक्ष ऑपरेटरों को पुनः चलाने सकता है, जबकि यह सुनिश्चित करते हुए

लेकिन इसे कैसे प्राप्त किया जाए? कोई मुझे कुछ उदाहरण के लिए इंगित कर सकता है कि यह कैसे करें? या शायद आप कॉन्फ़िगरेशन परिवर्तन को संभालने के लिए कुछ बेहतर दृष्टिकोण जानते हैं?

संपादित करें:

अब मैं कई मायनों पाया है, लेकिन मैं RxBus प्राप्ति उपयोग करने के साथ समाप्त हो गया है। RxBus का उपयोग करने का अच्छा उदाहरण आप here पा सकते हैं।

उत्तर

5

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

+2

आपके डेमो एप्लिकेशन के लिए धन्यवाद! लेकिन मुझे लगता है कि हम अनुरोध करते समय घूर्णन को संभालने के लिए RxLifecycle लाइब्रेरी का उपयोग करना चाहिए। RxAndroid परिवर्तन और स्थिर रिलीज को देखें https://github.com/ReactiveX/RxAndroid/blob/80393be5a835374bf9614e89f0629d5650fcdf92/CHANGES.md –

+1

मेरे पास RxLifecycle पर पहला हाथ अनुभव नहीं है लेकिन मुझे लगता है कि यह स्वचालित सदस्यता के आधार पर देखभाल कर सकता है आपके लिए जीवन चक्र घटनाएं। आपको अभी भी लंबित अनुरोधों/स्वयं द्वारा कैश किए गए डेटा प्राप्त करने की सदस्यता लेने की आवश्यकता है। अगर मैं गलत हूं तो कृपया सही करें – pmellaaho

+0

मुझे लगता है कि आप सही हैं, लेकिन मैंने अभी भी आरएक्स लाइफसाइक्ल को लागू नहीं किया है, इसलिए अब आपको सही नहीं किया जा सकता है। मुझे आशा है कि कोई भी जो पहले ही आरएक्स लाइफसाइकिल और आरएक्सबाइंडिंग का उपयोग कर चुका है, हमें सही कर सकता है। –

0

मैंने हाल ही में RxJava2 स्ट्रीम के दौरान बेहतर रोटेशन को संभालने के लिए कनेक्ट करने योग्य ऑब्सर्जेबल के साथ लोडर का उपयोग किया है। मैंने अपने दृष्टिकोण के विवरण में समझाते हुए Medium Post भी बनाया है।

मूल रूप से, आप एक ट्रांसफार्मर के साथ एक लोडर में नमूदार (ConnectableObservable) डाल करने के लिए है, और उसके बगल में नष्ट किया जा रहा करने के बाद जब गतिविधि/टुकड़ा फिर से शुरू फिर से सदस्यता लें।

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