38

मेरे पास एक गतिविधि है जो अधिसूचना बार से खोली जा रही है, लेकिन जब मैं NotificationManager.notify(...) करता हूं, तो मैं इरादा को एक अलग बंडल देता हूं, ताकि प्रत्येक अधिसूचना एक ही गतिविधि को खोल सके, लेकिन प्राप्त करना डीबी से अन्य जानकारी एक दूसरे से।एक ही गतिविधि के लिए एकाधिक नोटिफिकेशन

लेकिन जब मैं अधिसूचना में से किसी को प्रवेश करने का प्रयास (उदाहरण के लिए वहाँ 3 सूचनाएँ कर रहे हैं), वे सब मेरे ही बंडल है कि पिछले एक के साथ गतिविधि के लिए भेज देते हैं। कुछ झंडे के साथ प्रयास करने के बाद, मुझे नहीं पता कि समस्या कहां है (कुछ झंडे अधिसूचना को पहले बंडल के साथ गतिविधि में प्रवेश करती हैं)।

मैं जिस तरह से अनुसरण कर रहा हूँ वे the tutorial में इसका इस्तेमाल किया।

+0

के रूप में सूचित (के लिए एक ही अनूठा मूल्य) का उपयोग आप कोड जहां विचाराधीन उद्देश्य पैदा कर रहे के कुछ बता सकते हैं? मेरे पास एक समान मुद्दा था और ऐसा इसलिए था क्योंकि वे लंबित इरादे ढांचे द्वारा पुन: उपयोग किए जा रहे थे। – Maximus

उत्तर

104

PendingIntent एक ही आपरेशन है, तो कार्रवाई, डेटा, श्रेणियों, घटकों, और झंडे यह बदल दिया जाएगा।

स्थिति के आधार पर मैं आमतौर पर या तो के रूप में स्थिर मूल्यों (0,1,2) या डेटा मैं डीबी से प्राप्त कर रहा हूँ की पंक्ति आईडी एक अद्वितीय अनुरोध कोड प्रदान करके इस का समाधान।

PendingIntent.getActivity(context, MY_UNIQUE_VALUE , notificationIntent, PendingIntent.FLAG_ONE_SHOT); 

तब मैं

mNotificationManager.notify(MY_UNIQUE_VALUE, notification); 
+0

यह मेरे लिए किया था। बहुत धन्यवाद। डेवलपर दस्तावेज़ वास्तव में केवल पहचान विधि के लिए एक अद्वितीय आईडी का उल्लेख करते हैं, न कि निष्क्रियता विधि के लिए। – hcpl

+7

मुझे एक ही समस्या थी और यह समाधान पूरी तरह से काम करता है। मैं इस समस्या के साथ [प्रलेखन] (http://developer.android.com/reference/android/app/PendingIntent.html#getActivity%28android.content.Context,%20int,%20android.content.Intent,% शुरू होता है लगता है 20int% 2 9) - जो दावा करता है कि वर्तमान में अनुरोध कोड का उपयोग नहीं किया जा रहा है, लेकिन ऐसा लगता है। जवाब के लिए धन्यवाद। – jstr069

+5

यह मेरे लिए भी काम किया। कृपया इसे समाधान के रूप में चिह्नित करें। – dangel

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