Android में SendStickyBroadcast और sendBroadcast के बीच क्या अंतर है


जवाबों:


120

यहाँ Android SDK के बारे में क्या कहा गया हैsendStickyBroadcast() :

SendBroadcast (आशय) निष्पादित करें जो "चिपचिपा है", जिसका अर्थ है कि आप जो प्रसारण के पूरा होने के बाद चारों ओर रुके हुए हैं, ताकि अन्य लोग जल्दी से उस डेटा को registerReceiver (BroadcastReveriver, IntentFilter) के रिटर्न मान के माध्यम से प्राप्त कर सकें। अन्य सभी तरीकों से, यह sendBroadcast (आशय) के समान व्यवहार करता है।

ऑपरेटिंग सिस्टम के माध्यम से भेजे गए चिपचिपे प्रसारण का एक उदाहरण है ACTION_BATTERY_CHANGED। जब आप registerReceiver()उस कार्रवाई के लिए कॉल करते हैं - यहां तक ​​कि एक के साथ null BroadcastReceiver- आपको वह मिलता है Intentजो उस कार्रवाई के लिए अंतिम प्रसारण था। इसलिए, आप इसका उपयोग बैटरी के भविष्य के सभी परिवर्तनों के लिए आवश्यक रूप से पंजीकृत किए बिना बैटरी की स्थिति को खोजने के लिए कर सकते हैं।


6
बस कितना चिपचिपा इरादा है? जब आप registerReceiver को दूसरी बार कॉल करते हैं तो क्या वह फिर से उसी इरादे से लौटता है? (उस कार्रवाई के साथ कोई अतिरिक्त आशय न
मानते हुए

22
@ दावा: "जब आप दूसरी बार registerReceiver को कॉल करते हैं तो क्या वह फिर से उसी इरादे से लौटता है?" -- हाँ। "सत्ता जाना?" - वे चले जाते हैं, जैसे रैम में कुछ भी होता है। "स्क्रीन बंद हॆ?" -- कोई प्रभाव नहीं।
कॉमन्सवेयर

1
बस जोड़ने के लिए है कि स्टिकी प्रसारण सख्ती से सुश्री Hackborn से हतोत्साहित किया जाता है: groups.google.com/d/msg/android-developers/8341SaXhvmY/... । यह एक पुरानी पोस्ट है लेकिन शायद अभी भी लागू होती है
Mr_and_Mrs_D

1
@ कॉमन्सवेयर: मैं आपके बिंदुओं को नहीं समझ सकता। सामान्य इरादे के उदाहरण के साथ और समान परिदृश्य के लिए चिपचिपे इरादे के उदाहरण के साथ। फिर यह मेरे लिए उपयोगी होगा एक स्पष्ट विचार प्राप्त करें
SIVAKUMAR.J

4
@ कुशाल: "तो अब स्टिकी प्रसारण के लिए क्या विकल्प होना चाहिए?" - मैं वास्तव में इसका जवाब नहीं दे सकता, क्योंकि मुझे नहीं पता कि आपका उपयोग मामला क्या है। आप एक नया स्टैक ओवरफ्लो प्रश्न पूछने पर विचार कर सकते हैं, जहां आप अपनी व्यावसायिक आवश्यकता का वर्णन करते हैं, यह स्पष्ट करते हैं कि आप इसे कैसे चिपचिपा प्रसारण के माध्यम से हल करने के बारे में सोच रहे थे, और उसी समस्या को हल करने के वैकल्पिक तरीकों के लिए पूछें।
कॉमन्सवेयर

54

प्रकार : - स्थानीय, सामान्य, क्रमबद्ध और चिपचिपा

सामान्य प्रसारण

: - sendBroadcast का उपयोग करें ()

: - अतुल्यकालिक प्रसारण

: - किसी भी रिसीवर को कोई विशेष आदेश नहीं प्रसारित होता है

प्रसारण का आदेश दिया

: - sendOrderedBroadcast () का उपयोग करें

: - तुल्यकालिक प्रसारण

: - रिसीवर प्राथमिकता के आधार में प्रसारण प्राप्त करता है

: - हम केवल इस प्रकार के प्रसारण को रोक सकते हैं

स्थानीय प्रसारण

: - जब प्रसारण का उपयोग केवल उसी प्रक्रिया के अंदर किया जाता है

स्टिकी ब्रॉडकास्ट

: - सामान्य प्रसारण आशय इस प्रणाली को भेजने और संसाधित करने के बाद कोई भी उपलब्ध नहीं है।

: - sendStickyBroadcast (आशय) का उपयोग करें

: - संगत आशय चिपचिपा है, जिसका अर्थ है कि आप जो प्रसारण भेज रहे हैं वह पूरा होने के बाद चारों ओर रहता है।

: - इसके कारण अन्य लोग उस डेटा को रजिस्टरराइवर (ब्रॉडकास्टसीवर, इंटेंटफिल्टर) के रिटर्न वैल्यू के माध्यम से जल्दी प्राप्त कर सकते हैं।

: - इसके अलावा sendBroadcast (आशय) के समान।


बहुत मददगार ..
मैहर अबुथारा

10

sendbroadcast() - सामान्य प्रसारण, लेकिन हम प्राथमिकता भी निर्धारित कर सकते हैं।

sendstickybroadcast()- इसके साथ पारित इरादा भविष्य के उपयोगकर्ताओं के लिए छड़ी होगा जो कोड (गतिशील रिसीवर) के माध्यम से पंजीकरण कर रहे हैं। जो प्रसारण एंड्रॉइड के साथ चिपकेगा, और किसी भी प्रसारण रिसीवर से भविष्य के अनुरोधों को फिर से वितरित या फिर से प्रसारित किया जाएगा

जब कोई व्यक्ति एक चिपचिपा प्रसारण भेजता है sendstickyBroadcast(intent);तो वह प्रसारण भविष्य के उपयोगकर्ताओं के लिए उपलब्ध होगा जो गतिशील रिसीवर का उपयोग कर रहे हैं।

लेकिन अब आपको sendStickyBroadcast()विधि का उपयोग नहीं करना चाहिए, यह पदावनत है

Android प्रलेखन से:

इस विधि को एपीआई स्तर 21 में पदावनत किया गया था। स्टिकी प्रसारण का उपयोग नहीं किया जाना चाहिए। वे कोई सुरक्षा प्रदान नहीं करते (कोई भी उन तक पहुंच सकता है), कोई सुरक्षा नहीं (कोई भी उन्हें संशोधित कर सकता है), और कई अन्य समस्याएं। अनुशंसित पैटर्न गैर-चिपचिपा प्रसारण का उपयोग करने के लिए रिपोर्ट करने के लिए है कि कुछ बदल गया है, मौजूदा मूल्य को पुनः प्राप्त करने के लिए ऐप्स के लिए एक अन्य तंत्र के साथ।

आशा है कि ये आपकी मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.