7

पर बाइंड सेवा मेरे पास कुछ सेवा कक्षा है, जो एकाधिक अलार्म पंजीकृत करती है।ब्रॉडकास्ट रिसीवर

मेरी BroadcastReceiver वर्ग में, मैं onReceive() विधि सेवा वर्ग के कुछ विधि कॉल करना चाहते हैं।

हालांकि, मुझे नहीं लगता कि मैं उन्हें कैसे बांध सकता हूं। मैंने ब्रॉडकास्ट रिसीवर को एक आंतरिक वर्ग बनाने की कोशिश की, लेकिन फिर मुझे और त्रुटियां मिलीं और अलार्म को बिल्कुल भी नहीं चला सका।

धन्यवाद

+0

मुझे कुछ कामकाज मिला, इसलिए यह अब प्रासंगिक नहीं है। मैं अभी भी जानना चाहूंगा कि यह किया जा सकता है या नहीं। मैंने peekSerivce() के सभी प्रकारों की कोशिश की है और स्थिर उदाहरण फ़ील्ड का उपयोग किया है, लेकिन कोई भी काम नहीं करता है। – Mugen

उत्तर

6

http://developer.android.com/reference/android/content/BroadcastReceiver.html जीवन चक्र देखें। ब्रॉडकास्ट रिसीवर केवल एक संदेश को संभालने के लिए बनाया गया है। इसका मतलब है कि यह जीवन बहुत छोटा है, चींटी यह भी स्टेटलेस है। तो आप इसे कुछ भी बांध नहीं सकते हैं।

वैसे भी आप इस तरह BroadcastReceiver, के सेवा रूप onReceive(Context context, Intent intent) विधि प्रारंभ करने का प्रयास कर सकते हैं:

public void onReceive(Context context, Intent intent) { 
     Intent intent2 = new Intent(context, GCMService.class); 
     intent2.putExtras(intent); 
     context.startService(intent2); 
} 

फिर एक = सेवा एक प्रसारण संदेश संभाल चाहिए।

2

से http://developer.android.com/guide/components/bound-services.html

नोट: केवल गतिविधियों, सेवाओं, और सामग्री प्रदाताओं के लिए एक सेवा के लिए बाध्य कर सकते हैं - आप नहीं कर सकते हैं एक प्रसारण रिसीवर से एक सेवा के लिए बाँध।

संबंधित मुद्दे