我想在每个间隔时间内拨打(GPS设置)服务,最多可达到总时间。
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以毫秒为单位 我希望拨打GPS设置(服务等级)最多1小时...每个间隔
服务1小时后服务应自动停止; 问候, 吉里什答案 0 :(得分: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小时。