मुझे एंड्रॉइड आर्किटेक्चरल कंपोनेंट्स से एंड्रॉइड और लाइवडाटा में आरएक्सजेवा का उपयोग करने का कारण नहीं मिल रहा है। यह वास्तव में उपयोगी होगा यदि दोनों के बीच उपयोग और अंतर को कोड के रूप में नमूना उदाहरण के साथ समझाया गया है जो कि अंतर के बीच अंतर बताता है दोनों।एंड्रॉइड में आरएक्सजेवा का उपयोग कब करें और एंड्रॉइड आर्किटेक्चरल कंपोनेंट्स से लाइवडाटा का उपयोग कब करें?
उत्तर
एंड्रॉइड लाइवडाटा सक्रिय पर्यवेक्षक पैटर्न का एक संस्करण है, जिसमें सक्रिय/निष्क्रिय संक्रमण शामिल हैं। इस प्रकार, यह अपने दायरे में बहुत ही सीमित है।
Android LiveData में वर्णित उदाहरण का उपयोग करके, स्थान डेटा की निगरानी करने के लिए एक वर्ग बनाया गया है, और आवेदन स्थिति के आधार पर पंजीकरण और पंजीकरण रद्द कर दिया गया है।
आरएक्सजेवा ऑपरेटरों को प्रदान करता है जो अधिक सामान्यीकृत होते हैं। मान लेते हैं कि इस नमूदार स्थान डेटा प्रदान करेगा करते हैं:
Observable<LocationData> locationObservable;
नमूदार के कार्यान्वयन Observable.create()
का उपयोग कर संचालन कॉल बैक मैप करने के लिए का निर्माण किया जा सकता है। जब पर्यवेक्षित सब्सक्राइब किया जाता है, तो कॉल बैक पंजीकृत होता है, और जब इसकी सदस्यता समाप्त हो जाती है, तो कॉल बैक अपंजीकृत होती है। कार्यान्वयन उदाहरण में प्रदान किए गए कोड के समान ही दिखता है।
चलो यह भी मान लें कि आपके पास एक नमूदार सच का उत्सर्जन करता है कि जब आवेदन सक्रिय है:
Observable<Boolean> isActive;
तो आप निम्नलिखित
Observable<LocationData> liveLocation =
isActive
.switchMap(active -> active ? locationObservable : Observable.never());
switchMap()
ऑपरेटर द्वारा LiveData की सभी कार्यक्षमता प्रदान कर सकते हैं या तो स्ट्रीम के रूप में वर्तमान स्थान प्रदान करेगा, या कुछ भी नहीं यदि एप्लिकेशन सक्रिय नहीं है। एक बार आपके पास liveLocation
देखने योग्य हो, तो RxJava ऑपरेटरों का उपयोग करके आप इसके साथ बहुत सी चीजें कर सकते हैं। मेरा पसंदीदा उदाहरण है:
liveLocation.distinctUntilChanged()
.filter(location -> isLocationInAreaOfInterest(location))
.subscribe(location -> doSomethingWithNewLocation(location));
यह स्थान बदलने पर ही कार्रवाई करेगा, और स्थान दिलचस्प है। आप समान ऑपरेशन बना सकते हैं कि गति निर्धारित करने के लिए समय ऑपरेटरों को गठबंधन करें। सबसे महत्वपूर्ण बात यह है कि आप आरएक्सजेवा ऑपरेटरों का उपयोग करते हुए मुख्य धागे, या पृष्ठभूमि धागे, या एकाधिक धागे में संचालन के बारे में विस्तृत नियंत्रण प्रदान कर सकते हैं।
आरएक्सजेवा का बिंदु यह है कि यह पुस्तकालय से प्रदान किए गए संचालन का उपयोग करके, या यहां तक कि आपके द्वारा प्रदान किए जाने वाले कस्टम ऑपरेशंस का उपयोग करके एक ब्रह्मांड में नियंत्रण और समय को जोड़ता है।
लाइवडाटा उस ब्रह्मांड के केवल एक छोटे हिस्से को संबोधित करता है, liveLocation
के निर्माण के बराबर है।
- 1. ट्यूपल का उपयोग कब और कब करें?
- 2. एंड्रॉइड एनडीके में जेएनआईएक्सपोर्ट और जेएनआईसीएएल का उपयोग कब करें?
- 3. एंड्रॉइड लेआउट - ऐप का उपयोग कब करें: बनाम एंड्रॉइड :?
- 4. विभिन्न एंड्रॉइड थ्रेड्स का उपयोग कब और क्यों करें
- 5. टैग/लेबल का उपयोग कब करें और शाखा कब करें?
- 6. क्लोजर में "अगर" और "कब" का उपयोग कब करें?
- 7. एंड्रॉइड में एचटीएमएल 5 का उपयोग कब करें? कब उपयोग नहीं करते?
- 8. एंड्रॉइड: ऑनस्टार्ट(), ऑनस्टॉप() पर कब उपयोग करें?
- 9. isInstanceOf का उपयोग कब करें और मैच-केस-स्टेटमेंट (स्कैला में) का उपयोग कब करें?
- 10. वेक्टर का उपयोग कब करें और सी ++ में सरणी का उपयोग कब करें?
- 11. हाइबरनेट फ़ेचिंग रणनीति - "शामिल" का उपयोग कब करें और "चयन करें" का उपयोग कब करें?
- 12. डुप्ली का उपयोग कब करें, और रूबी में क्लोन का उपयोग कब करें?
- 13. reinterpret_cast का उपयोग कब करें?
- 14. घटकों का उपयोग कब करें और वाईआई में एक्सटेंशन का उपयोग कब करें?
- 15. फाइबर का उपयोग कब करें और टारनटूल में सह-दिनचर्या का उपयोग कब करें?
- 16. Q_NULLPTR का उपयोग कब करें?
- 17. ओपनसीएल का उपयोग कब करें?
- 18. Mockito.verify() का उपयोग कब करें?
- 19. फ़िल्टर_इनपुट का उपयोग कब करें()
- 20. ko.utils.unwrapObservable का उपयोग कब करें?
- 21. Request.RegisterForDispose का उपयोग कब करें?
- 22. TaskCreationOptions.LongRunning का उपयोग कब करें?
- 23. FOUNDATION_EXPORT का उपयोग कब करें?
- 24. का उपयोग कब करें hibernate.connection.provider_class
- 25. $ .extend ({...}) का उपयोग कब करें?
- 26. कीवर्ड का उपयोग कब करें
- 27. "^" ऑपरेटर का उपयोग कब करें
- 28. range.value का उपयोग कब करें?
- 29. QueueUserAPC() का उपयोग कब करें?
- 30. "हटाएं" का उपयोग कब करें?
धन्यवाद, लाइवडाटा दस्तावेज़ अब किसी स्थान नमूना का संदर्भ नहीं लेते हैं। यहां अधिक दिलचस्प अंक हैं (एक स्थान नमूना के साथ): http://androidkt.com/livedata/ –