2012-09-06 15 views
6

एंड्रॉइड 3.1 पर एंड्रॉइड पुश नोटिफिकेशन (जीसीएम) के साथ समस्या है: जब मेरा ऐप बंद हो जाता है - प्रसारण रिसीवर जो जीसीएम पुश संदेशों (इरादों) को संभालना चाहिए उसे कभी नहीं कहा जाता है।एंड्रॉइड 3.1 पर जीसीएम पुश अधिसूचनाएं: प्रसारण रिसीवर अक्षम करें

एंड्रॉइड के निचले संस्करणों में सबकुछ ठीक काम करता है। ब्रॉडकास्ट रिसीवर हमेशा कॉल किया जाता है (यहां तक ​​कि जब ऐप बंद होता है)।

मैं जानता हूँ कि एंड्रॉयड 3.1 से नई अवधारणा है कि वहाँ: जब आवेदन यह है नहीं चल रहा है में राज्य "बंद कर दिया": http://developer.android.com/about/versions/android-3.1.html#launchcontrols

तो अगर आप शुरू करने के लिए "बंद कर दिया" आशय के माध्यम से आवेदन चाहते हैं - आप जोड़ना चाहिए इरादे से FLAG_INCLUDE_STOPPED_PACKAGES ध्वज।

लेकिन समस्या यह है कि मैं जीसीएम इरादे में FLAG_INCLUDE_STOPPED_PACKAGES ध्वज नहीं जोड़ सकता क्योंकि जीसीएम इरादों (मेरा मतलब है "com.google.android.c2dm.intent.RECEIVE" और "com.google.android.c2dm.intent.REGISTRATION ") ओएस द्वारा फेंक दिया जाता है।

तो मेरा सवाल यह है कि मैं जीसीएम से पुश संदेश (एंड्रॉइड 3.1 पर) को स्थिति में ब्रॉडकास्ट रिसीवर के माध्यम से कैसे नियंत्रित कर सकता हूं जब आवेदन (जिसमें ब्रॉडकास्टसीवर पंजीकृत है) बंद है ("बंद" स्थिति में है)?

उत्तर

7

मैं जीसीएम से पुश संदेश (एंड्रॉइड 3.1 पर) को स्थिति में प्रसारण रिसीवर के माध्यम से कैसे नियंत्रित कर सकता हूं जब आवेदन (जिसमें ब्रॉडकास्टसीवर पंजीकृत है) बंद है ("बंद" स्थिति में है)?

आप नहीं कर सकते। यदि उपयोगकर्ता आपके ऐप को रोकता है, तो आपके ऐप का कुछ भी फिर से नहीं चलाया जाएगा (एंड्रॉइड 3.1+ पर) जब तक मैन्युअल रूप से नहीं आ जाता है, जैसे कि उपयोगकर्ता आपकी गतिविधियों में से एक लॉन्च करता है। आपका उद्देश्य उपयोगकर्ता को अपने ऐप को मजबूर करने का कोई कारण नहीं देना है।

+0

स्पष्टीकरण के लिए धन्यवाद! –