2012-08-06 10 views
10

क्या यह जांचना संभव है कि स्टिकी मोड में प्रसारण भेजा गया था या नहीं?क्या यह जांचना संभव है कि स्टिकी मोड में प्रसारण भेजा गया था या नहीं? क्या इसे निरस्त/हटाया जा सकता है?

क्या हम एक चिपचिपा प्रसारण पूरी तरह से निरस्त/हटा सकते हैं? यदि हां, तो क्या यह सामान्य और आदेशित दोनों प्रसारणों के लिए किया जा सकता है?

+2

चिपचिपा प्रसारण हटाया जा सकता है; देखें .... http://stackoverflow.com/questions/11839043/android-how-can-i-completely-abort-remove-sticky-broadcast –

उत्तर

20

onReceive() में आप निम्न कॉल का उपयोग कर सकते हैं:

isInitialStickyBroadcast() - यह आपको पता चलेगा कि प्रसारण आप वर्तमान में संसाधित के रूप में "स्टिकी" भेजा है और वर्तमान से एक था जब BroadcastReceiver पंजीकृत किया गया था रहे हैं।

isOrderedBroadcast() - यह आपको बताएगा कि वर्तमान में जिस प्रसारण को आप संसाधित कर रहे हैं उसे "आदेशित" प्रसारण के रूप में भेजा गया था।

तुम सिर्फ अगर वहाँ एक "स्टिकी" का प्रसारण होता है देखने के लिए चाहते हैं, आप

registerReceiver (BroadcastReceiver receiver, IntentFilter filter) 

फोन और receiver पैरामीटर के रूप में null आपूर्ति कर सकते हैं। यह वास्तव में रिसीवर को पंजीकृत किए बिना किसी भी "चिपचिपा" प्रसारण को वापस कर देगा।

आप का उपयोग कर एक स्टिकी प्रसारण निकाल सकते हैं:

removeStickyBroadcast(Intent intent) 

हालांकि, IMHO कि प्रतिकूल होगा। आमतौर पर "चिपचिपा" प्रसारण वर्तमान स्थिति को इंगित करने के लिए भेजे जाते हैं। तो इसे हटाने से यह संकेत मिलेगा कि किसी आवेदन के लिए वर्तमान स्थिति निर्धारित करना संभव नहीं है।