Как повторить будильник до общего времени на андроид?
Я хочу вызывать (GPSSetting) услуги до общего времени по каждому интервалу.
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent1 = new Intent(C2DMReceiver.this, GPSSetting.class);
PendingIntent pendingIntent = PendingIntent.getService(
C2DMReceiver.this, 0, intent1, 0);
am.setRepeating(AlarmManager.RTC, 1, 5,
pendingIntent);
просто здесь общее время 1 и интервал 5 мин, тогда GPSService должен звонить 12 раз
Общее время 1 час и интервал 5 в миллисекундах
Я хочу, чтобы вызывать GPSSetting (класс обслуживания) до 1 часа... каждый интервал
через 1 час сервис должен автоматически остановиться; С уважением, Гириш
1 ответ
Вы можете сделать так, я не знаю, это правильный путь или нет, но попробуйте
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent1 = new Intent(C2DMReceiver.this, GPSSetting.class);
PendingIntent pendingIntent = PendingIntent.getService(C2DMReceiver.this, 0, intent1, FLAG_UPDATE_CURRENT);
am.setRepeating(AlarmManager.RTC, current_time, 5000,pendingIntent);
здесь вы устанавливаете будильник с текущим временем, теперь он будет обновлять будильник и уведомлять каждые 5 минут, и вы сможете позвонить в свою службу.
вам нужно сохранить этот экземпляр намерения тревоги и current_time. сравните это время с временем в 1 час. Предположим, у вас есть current_time, который был установлен в сигнализацию, передайте это значение службе GPSSetting и сверьтесь со временем.
Calendar alarm_time = Calendar.getInstance();
alarm_time.setTime(you_alarm_time);
now add 1 hour in this and compare with the current time
alarm_time.add(Calender.HOUR,1); // this will add the 1 hour
Calendar cur_time = Calendar.getInstance();
if(cur_time.after(alarm_time)){
// cur_time is after alarm_time then cancel the alarm
}else{
// do whatever you want
}
каждый раз, когда вы вызываете эту службу, она определяет новый объект в вашем методе, поэтому вы просто сохраняете время будильника, когда устанавливаете время будильника, или вы также можете сохранить это время будильника с предварительно добавленным 1 часом, поэтому вам не нужно добавлять 1 час каждый раз просто сравните это время с текущим временем.