Как повторить будильник до общего времени на андроид?

Я хочу вызывать (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 час каждый раз просто сравните это время с текущим временем.

Другие вопросы по тегам