2013-06-05 7 views
6

से एक गतिविधि पद्धति को कॉल करें मैं जानता हूँ कि मैं अपने रिसीवरएक BroadcastReceiver वर्ग

से एक आंतरिक रिसीवर वर्ग किसी भी विधि कॉल करने के लिए कर सकते हैं लेकिन मेरा मुख्य गतिविधि भी लानत बड़ा है और बहुत कुछ करता है। तो मुझे एक कक्षा की आवश्यकता होगी जो प्रसारण रिसीवर को बढ़ाए लेकिन जो आंतरिक कक्षा नहीं है। और मेरी मुख्य गतिविधि से एक विधि को कॉल कर सकते हैं। मुझे नहीं पता कि यह संभव है लेकिन मेरी गतिविधि एक होम गतिविधि है और एक "सिंगल इंस्टेंस" गतिविधि है, इसलिए शायद इस विस्तार से किसी के पास मेरी गतिविधि तक पहुंचने का कोई तरीका है।

यदि कई जावा फाइलों में कुछ जावा कोड को विभाजित करना असंभव है तो मेरे मुख्य में 600 से अधिक लाइनें हैं। (और जानकारी के लिए मैं अपने ऐप्स की एक अल्फा संस्करण के लिए पहले से ही 19 जावा फ़ाइलें तो मैं इसे विभाजित करने की कोशिश की है) गतिशील

+0

नहीं है कि आप अपने BrodcastRecevier को गतिविधि संदर्भ पारित कर सकते हैं और इसका इस्तेमाल गतिविधि शुरू करने के लिए? – Blackbelt

+0

गतिविधि हमेशा लॉन्च होती है मैं इसे रिसीवर से लॉन्च नहीं करना चाहता हूं बस एक विधि को कॉल करें – Jebik

उत्तर

18

बनाएं BroadcastReceiver:

YourMainActivity yourMain = null; 
:

अपने BroadcastReceiver कक्षा में वर्ग के सदस्य को परिभाषित

और विधि:

setMainActivityHandler(YourMainActivity main){ 
yourMain = main; 
} 
अपने MainActivity से

कार्य करें:

private YourBroadcastReceiverClassName yourBR = null; 
yourBR = new YourBroadcastReceiverClassName(); 
    yourBR.setMainActivityHandler(this);  
    IntentFilter callInterceptorIntentFilter = new   IntentFilter("android.intent.action.ANY_ACTION"); 
    registerReceiver(yourBR, callInterceptorIntentFilter); 

अंत में, जब yourBR.onReceive निकाल दिया जाता है आप कॉल कर सकते हैं:

yourMain.methodOfMainActivity(); 
+0

क्या मुझे इस विधि के साथ मैनिफेस्ट में अपनी क्रिया को परिभाषित करने की आवश्यकता है या इरादाफिल्टर प्रसारण प्राप्त करने के लिए पर्याप्त है? – Jebik

+0

इरादा फ़िल्टर पर्याप्त है – blganesh101

+1

ठीक है धन्यवाद, मैं इसे आजमाएं। अपने पोस्ट चेंज कॉल को संपादित करें रजिस्टर में अपने बीआर द्वारा इंटरसेप्टर रिसीवर कॉल अगर कोई दूसरा इसे पढ़ता है: पी – Jebik

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