मुझे अलार्ममेनगर के साथ कोई समस्या है, मैंने दोहराने वाले अलार्म को शेड्यूल करने के लिए कोड सेट किया है और एप्लिकेशन चलाने के बाद, अलार्म ठीक चलाता है। यहां तक कि अगर मैं होम बटन पर क्लिक करता हूं (और एप्लिकेशन रुक गया है), अलार्म अभी भी इसके अंतराल पर चलता है।एप्लिकेशन को बंद करने के बाद एंड्रॉइड अलार्म रद्द कर दिया गया है
समस्या यह है कि यदि मैं कार्य प्रबंधक खोलता हूं और एप्लिकेशन को बंद कर देता हूं, तो अलार्म चलने से रोकता है।
क्या यह एक सामान्य व्यवहार है, क्या इससे बचने के लिए कोई तरीका है और एप्लिकेशन को बंद करने के बाद अलार्म चल रहा है?
कोड नीचे है - विधि को कॉन्टैक्ट कॉन्टेक्स्ट क्लास, क्रिएट() पर विधि कहा जाता है।
private void scheduleAlarm() {
if (alarmScheduled == true) { return; } // we only need to schedule once.
int alarmInterval = Def.pref(getApplicationContext()).getInt("alarmInterval", 30);
final Intent intent = new Intent(getApplicationContext(), CollectorAlarmReceiver.class);
final PendingIntent pending = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
AlarmManager alarmMgr = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarmMgr.cancel(pending); // cancel others.
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+1000,
alarmInterval*1000, pending);
Def.log(TAG,"scheduleAlarm(): alarm scheduled, interval: "+alarmInterval+" seconds");
alarmScheduled = true;
}
रिसीवर कोड:
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "CollectorAlarmReceiver invoked, starting CollectorService in background");
context.startService(new Intent(context, CollectorService.class));
Intent collectorService = new Intent(context,CollectorService.class);
collectorService.putExtra("action", CollectorService.ACTION_BACKGROUND_REQUEST_MESSAGES);
context.sendBroadcast(collectorService);
}
धन्यवाद!
क्या आप अपना रिसीवर कोड पोस्ट कर सकते हैं और अलार्म अंतराल का एक उदाहरण क्या हो सकता है? – ninjasense
मैंने रिसीवर के लिए कोड पोस्ट किया। अलार्म इंटरवल 30 सेकंड है। आप देख सकते हैं कि ऑन-रेसीव में लॉग इन है, इसलिए जब मैं रिसीवर का आह्वान करता हूं तो मैं ट्रैक कर सकता हूं। और ऐप चलाने के दौरान, यह ठीक काम करता है, समस्या तब बंद होती है जब यह बंद हो जाती है। –
आप सिस्टम डिफ़ॉल्ट घड़ी में अलार्म घड़ी क्यों सेट नहीं करते हैं। फिर इसे टास्क मैनेजर द्वारा मार दें और देखें कि यह आपके ऐप की तरह व्यवहार करता है या नहीं। अगर यह आपको अलार्म भी नहीं कर सकता है। मुझे लगता है कि यह आपके ऐप के लिए ठीक है और आपको कुछ भी करने की ज़रूरत नहीं है। –