मेरी परियोजनाओं में मैं BroadcastReceiver
एस का उपयोग लंबे समय से चलने वाले धागे से कॉलबैक के रूप में कर रहा हूं (उदाहरण के लिए। डाउनलोड को समाप्त करने वाली गतिविधि को सूचित करें और वर्कर Thread
से कुछ प्रतिक्रिया डेटा भेजें ताकि गतिविधि उपयोगकर्ता को उचित संदेश प्रदर्शित कर सके ..)। BroadcastReceiver
एस का उपयोग करने के लिए मुझे प्रत्येक बार जब मैं इसका उपयोग कर रहा हूं, तो प्रसारण रिसीवर को पंजीकृत और अनधिकृत करने के लिए सावधान रहना होगा और जब मैं इस विधि का उपयोग अधिक अलग-अलग कार्यों के लिए कर रहा हूं (जैसे डाउनलोड करना, वेब सेवा बनाना कॉल आदि ..)। और ब्रॉडकास्ट के इरादे के माध्यम से कस्टम ऑब्जेक्ट्स भेजने के लिए मुझे ऑब्जेक्ट्स Parcelable
बनाने की भी आवश्यकता है।एंड्रॉइड ब्रॉडकास्ट रिसीवर या सरल कॉलबैक विधि?
इस दृष्टिकोण के विपरीत, मैंने कॉलबैक विधियों के दृष्टिकोण को भी देखा है जो मेरे द्वारा उपयोग की जाने वाली विधि से सरल प्रतीत होता है। कॉलबैक विधियां सरल इंटरफेस विधियों के कार्यान्वयन हैं जिनका उपयोग ब्रॉडकास्ट रेकैवर के ऐप मैसेजिंग में समान प्रभाव प्राप्त करने के लिए किया जा सकता है। इस दृष्टिकोण को जटिल वस्तुओं को वापस करने के लिए पार्सलेबल कार्यान्वयन की आवश्यकता नहीं है और यह BroadcastReceiver
जैसी चाबियों का उपयोग नहीं करता है .. मुझे लगता है कि बुरा हिस्सा यह है कि मुझे कॉलबैक विधि कॉल करने से पहले मुझे शून्य मान के लिए कॉलबैक ऑब्जेक्ट की जांच करने की आवश्यकता है। और यह भी सुनिश्चित करने के लिए कि मैं यूआई थ्रेड पर कार्यान्वयन से कोड चला रहा हूं, इसलिए मैं त्रुटियों के बिना यूआई अपडेट कर सकता हूं।
ठीक है, मुझे उम्मीद है कि आप समझ गए कि मेरा क्या कहना है :)।
अब सवाल यह है कि क्या आपको लगता है कि कॉलबैक विधि BroadcastReceiver
दृष्टिकोण से बेहतर है (हल्का, क्लीनर, तेज़ ..) जब केवल एक ही एप्लिकेशन के अंदर उपयोग किया जाता है? (ध्यान दें कि मैं पृष्ठभूमि के काम के लिए एंड्रॉइड Service
का उपयोग नहीं कर रहा हूं .. बस AsyncTask
और Thread
एस)
धन्यवाद!
मैंने इसे एक उत्तर के रूप में सम्मानित किया है और इसे बक्षीस दिया है क्योंकि यह सबसे पूरा उत्तर है .. आपके विचारों के लिए धन्यवाद! – Cata
उत्कृष्ट जवाब। मैं कॉलबैक/इंटरफ़ेस पैटर्न का प्रशंसक हूं लेकिन मैं अक्सर ब्रॉडकास्ट इरादे पैटर्न के व्यापक उपयोग के साथ परियोजनाओं का उत्तराधिकारी हूं और मुझे अक्सर आश्चर्य होता है कि क्या मैं इसके बारे में गलत तरीके से जा रहा हूं। यह सुनकर अच्छा लगा कि वास्तव में यह सर्वोत्तम अभ्यास के बजाय डिजाइन वरीयता का मामला है। मुझे इंटरफेस द्वारा प्रदान की जाने वाली टाइप-सुरक्षा और कोड स्पष्टता पसंद है और मैं शायद –
के लिए उनके साथ रहूंगा, बहुत रोचक और विस्तृत राय +1 – Jorgesys