2010-12-27 16 views
6

में लंबित इरादे से अलार्म अपडेट करना मैं अलार्म क्लॉक प्रोजेक्ट पर काम कर रहा हूं और मैं अपने पहले से सेट अलार्म को संपादित करना चाहता हूं। जब मैं अलार्म संपादित करता हूं तो अलार्म समय अपडेट किया जाता है लेकिन putExtra() का उपयोग करके मैं जो मूल्य भेजता हूं वह बदल नहीं रहा है। मैं PendingIntent.FLAG_ONE_SHOT ध्वज का उपयोग कर रहा हूं।एंड्रॉइड

लेकिन जब मैं झंडा PendingIntent.FLAG_UPDATE_CURRENT सेट सब putExtra() मान भी बदल रहे हैं, लेकिन अब समस्या यह है कि है, जब मैं स्टॉप बटन पर क्लिक करें और finish() वर्तमान गतिविधि इसे फिर से कहता है।

का मतलब है कि जब मैं गतिविधि को समाप्त करने के लिए जाता हूं तो यह बटन पर क्लिक करता है, जबकि मैं वर्तमान गतिविधि को समाप्त कर रहा हूं। कृपया मेरी मदद करें। अग्रिम धन्यवाद।

1) AlarmManager.cancel(pendingIntent) एक pendingIntent कि अपने लंबित आशय (एक ही कक्षा से मेल खाते हैं, उसी के साथ:

उत्तर

6

AlarmManager में एक PendingIntent अद्यतन करने के लिए मेरे पसंदीदा तरीका यह रद्द करने के लिए और फिर से सेट यह
मत भूलना रद्द करने के लिए है कार्रवाई ... लेकिन परवाह नहीं है अतिरिक्त के बारे में IntentFilter देख)
2) pendingIntent.cancel();
3) pendingIntent = new PendingIntent() ... और क्या अन्य सेटिंग्स
4) AlarmManager.set(... प्रदान करने के लिए नए PendingIntent

+0

कैलेंडर घटनाओं अलार्म की स्थापना, अगर हम एक स्थानीय चर का उपयोग करने के मामले में और स्थिर नहीं है, हम विभिन्न घटनाओं के लिए विभिन्न समय प्रदान कर सकते हैं। लेकिन ऐसा लगता है कि आपने स्थिर लंबित उदाहरण दिखाया है उदाहरण –

+0

वास्तव में अलार्म को अपडेट करने का यही एकमात्र तरीका है? मेरे लिए काम किया –

0

प्रत्येक अलार्म का अनूठा पहचानकर्ता होता है, यदि आप अलार्म को अपडेट करना चाहते हैं, तो आप एक ही UNIQUE_ID के साथ एक नया बना सकते हैं।

PendingIntent pi = PendingIntent.getBroadcast(this, PENDING_INTENT_ID, intent, 0); 

Check this answer