Android - प्रसारण रिसीवर से संदर्भ प्राप्त करना


84

मैं मूल रूप से एक आशय बनाना चाहता हूं और इसे अपने ब्रॉडकास्टरसिव ऑनरसीव () से सेवा में पास करना चाहता हूं।

अब तक मैं हमेशा View.getContext () का उपयोग करता था, लेकिन यहां, मैं फंस गया हूं। मैं वास्तव में संदर्भ कैसे प्राप्त कर सकता हूं ताकि मैं उपयोग कर सकूं public Intent (Context packageContext, Class<?> cls)?

जवाबों:


303
public abstract void onReceive(Context context, Intent intent)

onReceiveआपको संदर्भ देता है। आपको और क्या चाहिए?


9
ओह, गंभीरता से, मैंने इसे तब तक नहीं देखा जब तक मैं इसे नहीं देखता।
Blasanka

2

वैसे ऊपर वर्णित उत्तर किसी काम का नहीं है। जब तक आप onReceive में हैं, आप संदर्भ का उपयोग कर सकते हैं। एक बार जब आप कोड onReceive से वापस आ गए, तो संदर्भ अब मौजूद नहीं है।

तो आपका समस्या कथन यह कहता है कि आप अपने इरादे निर्माण में इस संदर्भ का उपयोग करके सेवा शुरू करना चाहते थे और फिर इस संदर्भ वस्तु के साथ startService बुला रहे थे। ऐसा नहीं किया जा सकता है।

इसे पढ़ें क्या और ब्रॉडकास्टर संदर्भ में नहीं किया जा सकता है।

http://developer.android.com/reference/android/content/BroadcastReceiver.html


आपने जो कहा वह सच नहीं है। आप ब्रॉडकास्टवर्स से एक सेवा शुरू कर सकते हैं, लेकिन उन्हें बांध नहीं सकते।
बर्द्या मोमेनी

0

ब्रॉडकास्टसीवर में

onReceive(Context context, Intent intent)

विधि संदर्भ प्रदान करती है

इसलिए

गतिविधि का उपयोग शुरू करने के लिए

context.startActivity(intent);

और सेवा का उपयोग शुरू करने के लिए

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