2015-11-20 14 views
11

का उपयोग कर एंड्रॉइड सेवा से यूआई को कैसे अपडेट करें मेरे पास एक बाउंड सेवा है जो फ़ाइलों को डाउनलोड करने के लिए ज़िम्मेदार है और इस प्रकार यह डाउनलोडिंग स्थिति/प्रगति को जानता है। और यूआई (टुकड़ा या गतिविधि) को सेवा से डाउनलोड प्रगति को दिखाने/अपडेट करना होगा।RxJava/RxAndroid

असल में मुझे लगता है कि सामान्य तरीका BroadcastReciever या गतिविधि से CallBack का उपयोग करना है। लेकिन मैंने आरएक्सजेवा (रेएक्टिवएक्स प्रोग्रामिंग) और मध्यस्थ कक्षा (और डैगर को सेवा और गतिविधि दोनों में इंजेक्ट करने के लिए) का उपयोग करने के बारे में कहीं और सुना है, जो नीचे उल्लिखित है।

तो मेरा सवाल यह है कि आरएक्सजेवा को इन गुच्छाों के साथ कैसे संभालना है? कोई कोड नमूने? क्या इरादों का उपयोग करने का कोई और आसान तरीका है?

संसाधन: More efficient way of updating UI from Service than intents? [पहले उत्तर को अपडेट हुआ]

+1

व्यक्तिगत रूप से मैं मैसेंजर सेवा का उपयोग करना पसंद करता हूं: http://developer.android.com/reference/android/os/Messenger.html – mjp66

+1

मैंने सोचा कि मेरे पास कहीं मैसेंजर का उपयोग करने का एक उदाहरण था, मुझे नहीं लगता, लेकिन यहां एक अच्छा है इसके उपयोग का विवरण पोस्ट करें: http://stackoverflow.com/questions/4300291/example-communication-between-activity-and-service-using-messaging – mjp66

+0

बस "स्थानीय बाध्य सेवा" पैटर्न का उपयोग करें, किसी भी बाहरी libs की आवश्यकता नहीं है और यह सबसे तेज़ समाधान – pskink

उत्तर

1

Binder उपवर्ग जब कुछ अपने Service एक विधि है कि एक Observable जो प्रगति डेटा का उत्सर्जन करता है रिटर्न का खुलासा कर सकते हैं करने के लिए बांधता आप का उपयोग करें।

इस दृष्टिकोण के साथ चेतावनी यह है कि आपके पास दो संसाधन हैं जिन्हें आपको रिलीज़ करने की आवश्यकता है जब Activity उदाहरण अब वैध नहीं है: सेवा कनेक्शन और अवलोकन योग्य सदस्यता।

+0

क्या आप अपनी टिप्पणी समझा सकते हैं, या कुछ उदाहरण दे सकते हैं? –

+2

खराब जवाब। अवलोकन योग्य क्रमबद्ध वस्तु नहीं है, इसलिए यह सुनिश्चित न करें कि यह काम करेगा, खासकर यदि सेवा क्रॉस-प्रोसेस इंटरैक्शन के लिए डिज़ाइन की गई है। काम नहीं करेंगे। – msangel

+1

क्रॉस-प्रोसेस इंटरैक्शन इस प्रश्न के दायरे से बाहर है। अन्यथा, यह मूल रूप से बाइंडर के माध्यम से आपके सेवा उदाहरण को उजागर करने जैसा ही है, और सेवा भी क्रमिक नहीं है। – npace

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

  • कोई संबंधित समस्या नहीं^_^