2011-07-14 20 views
9

को मैं एक गतिविधि जो विधि onCreate(...) में एक IntentFilter के साथ एक BroadcastReceiver बनाता है एक प्रसारण भेजें:केवल विशिष्ट गतिविधि

IntentFilter iFilter = new IntentFilter("action"); 

receiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 

    } 
}; 

registerReceiver(receiver, iFilter); 

दूसरी तरफ एक IntentService है, जो कुछ डेटा भेज देंगे:

Intent intent = new Intent(getApplicationContext(), receiver.class); 
intent.setAction("action"); 

[...] 

sendBroadcast(intent); 

लेकिन ऐसा लगता है कि यह काम नहीं करता है । नहीं प्रसारण प्राप्त नहीं हुआ है।
मेरी सेवा कक्षा एंड्रॉइड लिब में है, शायद इससे परेशानी होती है।

किसी भी सलाह के लिए धन्यवाद।

+0

यह काम करना चाहिए पर विचार करें। आपको क्यों लगता है कि यह काम नहीं करता है। इससे कोई फर्क नहीं पड़ता कि यह लाइब्रेरी प्रोजेक्ट में है, जब तक आप अपनी मुख्य परियोजना में अपनी लाइब्रेरी प्रोजेक्ट को संदर्भित करते हैं। –

+1

मुझे यह नहीं लगता। मैंने परीक्षण करते समय इसे देखा। – CSchulz

+0

ऑन रीसीव विधि में कुछ लॉग या प्रिंट करें। लॉगकैट क्या कहता है? –

उत्तर

10

बस अपनी कार्रवाई के साथ इरादा बनाएं।

Intent intent = new Intent("action"); 
[...] 
sendBroadcast(intent); 

और, अधिक सार्थक बनाने के लिहाज़ "कार्रवाई" का नाम बदलने "com.my.package.actions.SOME_ACTION" की तरह मानते हैं।

आप केवल कि आपके आवेदन घटकों प्रसारण प्राप्त तो उपयोग करना चाहते हैं:

  1. एक signature सुरक्षा स्तर के साथ अपने प्रकट में एक अनुमति रजिस्टर (और उस की अनुमति के लिए एक उपयोग-अनुमति को परिभाषित)। अधिक here
  2. उपयोग sendBroadcast(intent, permission), और अगर इरादे अपने ऐप्लिकेशन के अंदर है में 1.
+0

नाम अधिक अर्थपूर्ण हैं। ;) जब मैं इस तरह का उपयोग करता हूं तो हर कोई मेरा * प्रसारण * प्राप्त कर सकता है और मैं इसे रोकना चाहता हूं। – CSchulz

+0

यह एक प्रसारण कार्यक्रम का विचार है। आप सभी का क्या मतलब है? आपकी गतिविधियों को शायद अपने जीवन चक्र में कहीं भी सुनना बंद कर देना चाहिए, संभवतः ऑन पॉज़ विधि में। – aromero

+0

मेरा मतलब है * प्रसारण * विभिन्न गतिविधियों के साथ प्राप्त किया जा सकता है न केवल मेरा, है ना? – CSchulz

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