6

मेरे पास लॉन्चर गतिविधि के बिना एक एप्लिकेशन है जो एंड्रॉइड 1.5 से एंड्रॉइड 2.3.4 से ठीक से काम करता है। यह मेरे प्रसारण रिसीवर द्वारा शुरू किया गया है। हालांकि, हनीकॉम (मोटोरोला ज़ूम) पर, मेरा प्रसारण रिसीवर बिल्कुल काम नहीं करता है (यह किसी भी इरादे को नहीं पकड़ता है)। अगर मैं अपने प्रकट करने के लिए लांचर गतिविधि जोड़ें:एंड्रॉइड - [ज़ूम/हनीकॉम] लॉन्चर गतिविधि के बिना आवेदन

<activity android:label="@string/app_name" android:name="com.myapp.MainActivity"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> 
</activity> 

तब मेरे एप्लिकेशन ठीक से काम करता (प्रसारण रिसीवर के लिए सभी आवश्यक उद्देश्यों को देखता है और मेरी सेवाओं शुरू होता है)।

मैं मदद के लिए बहुत आभारी हूं!

+0

आपका प्रसारण रिसीवर कहां परिभाषित किया गया है? –

+0

@ जोन विलिस: रिसीवर को मैनिफेस्ट में परिभाषित किया गया है। कॉमन्सवेयर और गौरव ने समस्या की व्याख्या की है। आपके सहयोग के लिए धन्यवाद! – Kacper86

उत्तर

10

क्या आप हनीकॉम्ब 3.1 या उससे ऊपर चल रहे हैं? यदि हां here देखें। जब आपका एप्लिकेशन इंस्टॉल हो जाता है, तो यह बंद स्थिति में है। जब एप्लिकेशन को पहली बार लॉन्च किया जाता है, तो इसे बंद राज्य से बाहर ले जाया जाता है।

सभी प्रसारण उद्देश्यों द्वारा बंद राज्य में एक आवेदन शुरू नहीं किया जाएगा। प्रसारण उद्देश्यों के प्रेषक को Intent.FLAG_INCLUDE_STOPPED_PACKAGES ध्वज निर्दिष्ट करना होगा यदि वह बंद अनुप्रयोगों को भी लॉन्च करना चाहता है।

Intent intent = new Intent(MY_INTENT_ACTION); 
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); 
sendBroadcast(intent); 

यदि आप इरादा भेजते हुए कोड नहीं बदल सकते हैं, तो आपकी सबसे अच्छी शर्त लॉन्चर गतिविधि को बनाए रखना होगा। जब भी उपयोगकर्ता इंस्टॉलेशन के बाद आपका एप्लिकेशन लॉन्च करता है, तो इसे बंद राज्य से बाहर ले जाया जाएगा और आप प्रसारण प्राप्त करना शुरू कर देंगे।

ध्यान दें कि उपयोगकर्ता आपके एप्लिकेशन को डिवाइस सेटिंग्स में एप्लिकेशन प्रबंधित करने से रोक दिया गया स्थिति में वापस ले जा सकता है।

+0

आपकी त्वरित प्रतिक्रिया के लिए बहुत बहुत धन्यवाद! – Kacper86

4

एंड्रॉइड 3.1 और उच्चतर पर, BroadcastReceivers तब तक नहीं बुलाया जाएगा जब तक उपयोगकर्ता ने किसी अन्य माध्यम से कम से कम एक बार एप्लिकेशन शुरू नहीं किया है, जैसे कि गतिविधि लॉन्च करना।

चूंकि उपयोगकर्ता ऐसी गतिविधियों से बहुत उलझन में पड़ते हैं जिनके पास कोई गतिविधि नहीं है, तो आपको वास्तव में किसी भी गतिविधि में ऑनलाइन गतिविधि के लिए पहली जगह नहीं होना चाहिए था। एंड्रॉइड 3.1 के साथ, यह और भी महत्वपूर्ण है।

+0

आपकी त्वरित प्रतिक्रिया के लिए बहुत बहुत धन्यवाद! – Kacper86

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