android - एंड्रॉइड ब्रॉडकास्ट रिसीवर बनाम सेवा




android-service android-broadcast (2)

इस प्रश्न का उत्तर यहां दिया गया है:

मैं एंड्रॉइड में ब्रॉडकास्ट रिसीवर और सेवा के बीच अंतर को स्पष्ट करने की कोशिश कर रहा हूं।

मैं समझता हूं कि एक गतिविधि एक उद्देश्य के साथ startService को कॉल करके एक सेवा शुरू कर सकती है।

एक प्रसारण रिसीवर कोड या मैनिफेस्ट में पंजीकृत किया जा सकता है और sendBroadcast साथ बुलाया जा सकता है।

आप एक बनाम दूसरे का उपयोग कब करेंगे?

मैं समझता हूं कि एकाधिक प्रसारण रिसीवर एक ही इरादे के लिए सुन सकते हैं और यह सेवा के मामले में नहीं है।


सबसे पहले, ब्रॉडकास्ट रिसीवर और Services दोनों के लिए प्रलेखन पढ़ें।

आप here और here उपयोगी ट्यूटोरियल पा सकते हैं।

अंत में, लंबी कहानी कम करने के लिए:

सेवा आपके अनुरोध पर शुरू होती है (startService (मंशा))। आप ब्रॉडकास्ट रिसीवर को एक इरादा श्रोता के रूप में सोच सकते हैं।


प्रसारण प्राप्तकर्ता

एंड्रॉइड डेवलपर्स ब्लॉग पर डियान हैकबर्न का उद्धरण:

प्रसारण को संभालने पर, एप्लिकेशन को एक निश्चित समय (वर्तमान में 10 सेकंड) दिया जाता है जिसमें अपना काम करना होता है। यदि वह उस समय पूरा नहीं होता है, तो आवेदन को गलत व्यवहार माना जाता है, और इसकी प्रक्रिया तुरंत पृष्ठभूमि स्थिति में फेंक दी जाती है, यदि आवश्यक हो तो स्मृति के लिए मार डाला जाए।

ब्रॉडकास्ट रिसीवर अधिकतम समय (आमतौर पर 10 सेकंड) तक सीमित होते हैं, उन्हें खत्म करना होगा।

सर्विस

यदि आपकी कार्रवाई में कुछ समय लगता है (इंटरनेट से कनेक्ट करना कुछ ले सकता है)। पृष्ठभूमि में रन के रूप में अधिक पसंद है। इस उद्देश्य के लिए आपको निश्चित रूप से रिसीवर या गतिविधि से एक सेवा कॉल करनी चाहिए। वे एंड्रॉइड ऑपरेटिंग सिस्टम द्वारा आखिरी बार मारे जा रहे हैं।

निष्कर्ष:

  1. आम तौर पर सभी काम (fetching, पार्सिंग, कैशिंग, डेटाबेस अपडेट करना) जो आपके आवेदन के लिए महत्वपूर्ण है Service लिए स्थानांतरित किया जाना चाहिए क्योंकि वे एंड्रॉइड पर लंबे समय तक रहते हैं। जैसा कि आपने लगभग माना है कि सभी सोशल नेटवर्किंग साइटों में STICKY_SERVICES जो सभी STICKY_SERVICES काम करते हैं।

  2. BroadcastReceiver ज्यादातर सेवा शुरू करने के लिए उपयोग किया जाता है। यह आम तौर पर आवेदन पर निर्भर करता है। जब भी नेटवर्क यूपी या नीचे होता है तो अधिकांश एप्लिकेशन ConnectivityManager का प्रसारण करने के लिए उपयोग करता है। BroadcastReceiver द्वारा इन Service की मदद से शुरू किया गया है।





android-broadcast