मैं एक एंड्रॉइड एप्लिकेशन लिख रहा हूं जहां उपयोगकर्ता कई स्टॉक चुनने के लिए चुन सकता है और पूर्वनिर्धारित अलर्ट स्थिति से मेल खाने पर सतर्क हो जाता है। स्टॉक डेटा को कस्टम पार्सेलबल क्लास "अलर्ट" (स्टॉक और हालत प्रति एक ऑब्जेक्ट) की 5 ऑब्जेक्ट्स में सहेजा जाता है। आवधिक डेटा अपडेट AlarmManager द्वारा शुरू की गई सेवा के माध्यम से किया जाता है। चेतावनी वस्तुएं उन्हें उस इरादे में डालकर सेवा में पास की जाती हैं जो अलार्ममेनगर के लंबित इंटेंट में डाल दी जाती है।अलार्म मैनेजर द्वारा सेवा शुरू होने पर इरादे का उपयोग करके डेटा को डेटा को अपडेट करने के लिए कैसे करें?
Intent intent = new Intent(this, UpdateService.class);
Bundle b = new Bundle();
saveAlertsToBundle(b);
intent.putExtras(b);
intent.setData(Uri.parse("updateManager"));
PendingIntent pendIntent = PendingIntent.getService(this,0,intent,0);
// 1min intervall
long intervall = DateUtils.MINUTE_IN_MILLIS * 1;
// time of first start
long firstStartDelay = DateUtils.SECOND_IN_MILLIS * 30;
long firstStart = System.currentTimeMillis() + firstStartDelay;
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
// kill running
am.cancel(pendIntent);
//start new
am.setRepeating(AlarmManager.RTC_WAKEUP,firstStart,intervall,pendIntent);
मेरे समस्या है:
जब पहली बार के लिए सेवा शुरू करने जब वहाँ चेतावनी का केवल एक ही वस्तु सेवा सब कुछ ठीक काम करता है के लिए पारित किया है। जैसे ही अधिक अलर्ट मौजूद होते हैं, उन्हें सेवा में भी पारित करने की आवश्यकता होती है लेकिन यह उपरोक्त कोड के साथ काम नहीं करती है। सेवा को अतिरिक्त अलर्ट ऑब्जेक्ट्स के साथ अपडेट किए गए इरादे को प्राप्त नहीं होता है, लेकिन केवल एक चेतावनी ऑब्जेक्ट वाला प्रारंभिक ही होता है। उपर्युक्त कोड अतिरिक्त चेतावनी वस्तु धारण करने वाला एक इरादा बनाता है, लेकिन वे कभी भी सेवा तक नहीं पहुंचते हैं।
तो मेरा सवाल यह है कि पहले से चल रहे अलार्ममेनर को अपडेट किए गए इरादे को कैसे पास किया जाए।
मैंने पहले से ही अलार्ममेनर (// मारने वाली टिप्पणी पर पंक्ति) को रोकने और इसे पुनरारंभ करने का प्रयास किया है, लेकिन यह काम नहीं करता है। संभवतः उस उद्देश्य के कारण जब वह बनाया गया था उसी चेतावनी वस्तुओं को नहीं पकड़ रहा था? मैंने इरादे के डेटा हिस्से में एक यूरी सेट करके इसे ठीक करने की कोशिश की लेकिन इससे भी मदद नहीं मिली।
सहायता के लिए धन्यवाद।
आपकी मदद के लिए धन्यवाद, इसने समस्या हल की लेकिन एक नया बनाया। अतिरिक्त अलर्ट ऑब्जेक्ट्स को सेवा में पास किया जाता है, लेकिन अतिरिक्त अलार्ममेनगर नियंत्रित सेवाओं के रूप में, पहले से चल रहे अलार्ममेनर्स चलते रहते हैं। इसलिए हर बार जब मैं एक अलर्ट ऑब्जेक्ट जोड़ता हूं तो अलार्ममेनर्स की मात्रा बढ़ जाती है। इसका मतलब है कि मेरे पास एक अलर्ट ऑब्जेक्ट के लिए चल रहा है, एक के लिए दो, तीन में से एक, आदि। मुझे लगता है कि अगर मौजूदा मौजूदा अलर्ट की मौजूदा मात्रा में केवल एक ही होगा तो मुझे अभी भी पुराने अलार्ममेनर को रोकने की जरूरत है। सेवाओं को रोकने के लिए बंद कर दिया गया है()। – user1695117
ठीक है। मुझे यकीन नहीं था कि आप वास्तव में क्या करना चाहते थे। इस टिप्पणी के आधार पर ऐसा लगता है कि आप मौजूदा अलार्म को रद्द करना चाहते हैं और नए पैरामीटर के साथ एक नया बनाना चाहते हैं। मैं इसके लिए अपना जवाब संपादित करूंगा। –
यह पूरी तरह से काम किया। तो मैं जो खो रहा था वह सही ध्वज था, ऐसा लगता है। आपके सहयोग के लिए धन्यवाद। – user1695117