Как повторить тревогу на общее время в Android? - PullRequest
0 голосов
/ 17 ноября 2011

Я хочу вызывать (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 Ответ

1 голос
/ 17 ноября 2011

вы можете сделать это так, я не знаю, это правильный путь или нет, но попробуйте

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

...