Android 仅在定期定时之间[晚上9:00到上午12:00]安排服务n次

Android 仅在定期定时之间[晚上9:00到上午12:00]安排服务n次,android,android-service,android-alarms,Android,Android Service,Android Alarms,我已经创建了服务UploadData,它在启动同步事件时触发。在那里添加了代码,以安排每天晚上9:00运行的服务,间隔1小时,运行非常好 ServiceAlarm.startServiceAlarm(); 代码段: public class ServiceAlarm { public static AlarmManager alarmMgr; public static PendingIntent alarmIntent; static Context context; public sta

我已经创建了服务
UploadData
,它在启动同步事件时触发。在那里添加了代码,以安排每天晚上9:00运行的服务,间隔1小时,运行非常好

 ServiceAlarm.startServiceAlarm();
代码段:

public class ServiceAlarm {
public static AlarmManager alarmMgr;
public static PendingIntent alarmIntent;
static Context context;
public static void startServiceAlarm()
{
    context = MyApplication.getApplication();
    alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);       
    Intent intent = new Intent(SmartConsultant.getApplication(), UploadData.class);
    alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

    // Set the alarm to start at 9:00 a.m.
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    calendar.set(Calendar.HOUR_OF_DAY, 21);
    calendar.set(Calendar.MINUTE, 00);

    alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_HOUR, alarmIntent);
    Log.i("Service", "Service Started!");
}

  public static void stopServiceAlarm()
  {
    alarmMgr.cancel(alarmIntent);
   }
}
但我希望这些服务在凌晨12:00后关闭[它必须在晚上9:00到凌晨12:00之间一天只运行三次]


如何在12:00停止相同的服务?

我认为没有具体的方法来安排停止时间。我想说,对于您的具体情况,最好的办法是更改服务呼叫的设置。让报警管理器在9点点火。然后,当你收到警报时,检查时间,如果离午夜还有一个小时,则触发另一个警报

谢谢你的确认。我已经触发了另一个警报,取消了前一个警报。但仍然没有测试它。为此我祈祷。