2012-12-19 16 views
8

एंड्रॉइड का संगतता पैक स्थानीय ब्रॉडकास्ट मैनेजर का समर्थन करता है, जो मेरी प्रक्रिया के भीतर प्रसारण भेजने में सक्षम बनाता है। http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.htmlकॉलबैक का उपयोग कर स्थानीय ब्रॉडकास्ट मैनेजर बनाम

अब तक मैं अपने ऐप्स के विभिन्न हिस्सों के बीच डेटा (एसिंक्रोनस और सिंक्रोनस) स्थानांतरित करने के लिए कॉलबैक (ऑनक्लिक लिस्टनर के समान इंटरफ़ेस) का उपयोग कर रहा था।

मैं सोच रहा था कि कोई बेहतर है तो दूसरा। कोई राय?

उत्तर

6

LocalBroadcastManager आपको Intent और IntentFilter का उपयोग करने देता है ताकि सिस्टम-व्यापी प्रसारण से स्थानीय लोगों में माइग्रेट करना आसान हो। इसमें कुछ क्यूइंग कोड भी है और यह आपके कोड से अधिक विश्वसनीय हो सकता है (या नहीं, यह निर्भर करता है कि आपका कार्यान्वयन कितना परिष्कृत है)। इसके अलावा, यह अनिवार्य रूप से केवल स्मृति में रिसीवर की सूचियां रखता है और उन्हें एक मैच खोजने के लिए पुनरावृत्त करता है।

दूसरा, विकल्प स्क्वायर Otto (गुवा के आधार पर) जैसी घटना बस का उपयोग करना है, जो प्रकार की सुरक्षा को जोड़ता है और यह उतना ही कुशल है।

1

जहाँ तक मुझे पता है, स्थानीय ब्रॉडकास्ट प्रबंधक एक आकर्षण की तरह काम करता है। यह परेशानी मुक्त है और आप इरादे के भीतर किसी भी तर्क को पारित कर सकते हैं और सुनवाई के दौरान इसे वापस प्राप्त कर सकते हैं। एकमात्र विश्वसनीयता ब्रॉडकास्ट मैनेजर कतार में इरादा रखती है।

आपको स्थानीय ब्रॉडकास्टमैनेजर का उपयोग कब करना चाहिए? जब आपके पास एक ही गतिविधि (फ्रैगमेंट एक्टिविटी) और फ्रैगमेंट क्लासेस के टन होते हैं, तो एकल गतिविधि के भीतर स्थानीय ब्रॉडकास्ट मैनेजर होना आसान होता है।

यदि आपके पास बहुत सारी गतिविधियां हैं तो इसका उपयोग सहायक हो सकता है, लेकिन यह भी ध्यान रखें कि आप पहले से ही नई गतिविधियों को लॉन्च करने के इरादे का उपयोग कर रहे हैं, इसलिए यदि कोई लंबित इरादा है, तो यह प्रसारण कतार में होगा और आपको इंतजार करना होगा।

तो, सबसे अच्छा उपयोग कई टुकड़ों के साथ एकल गतिविधि है।

+0

मैंने आपके संपादन को वापस ले लिया क्योंकि यह एक टिप्पणी होनी चाहिए, और आपके संपादन से संकेत मिलता है कि मैं आपके उत्तर से सहमत हूं। गतिविधियां और टुकड़े एक-दूसरे के उदाहरणों से अवगत हैं। कॉलबैक (यहां तक ​​कि सभी टुकड़ों के लिए केवल एक सामान्य इंटरफ़ेस) सेट अप करने के लिए आसान है (बनाने, फ़िल्टर करने, पंजीकरण करने, पंजीकरण करने, आदि की तुलना में) और आप उनके बीच किसी ऑब्जेक्ट प्रकार को पास कर सकते हैं। स्थानीय प्रसारण उन समय के लिए बेहतर होते हैं जहां आपके पास किसी अन्य ऑब्जेक्ट के उदाहरण (जैसे सेवा) तक पहुंच नहीं है। –