1

我打算开发一个应用程序,它会询问用户一周中几天的蓝牙打开和关闭时间,然后使用警报服务来执行此操作。我使用以下 grunt 代码进行测试。

Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class);

 pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0);

       AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
       /*
       Calendar calendar = Calendar.getInstance();
       calendar.setTimeInMillis(System.currentTimeMillis());
       calendar.add(Calendar.SECOND, 30);
       alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),  
       pendingIntent);

       */

       Calendar cur_cal = new GregorianCalendar();
       cur_cal.setTimeInMillis(System.currentTimeMillis());
       Calendar cal = new GregorianCalendar();
       cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
       cal.set(Calendar.HOUR_OF_DAY, 13);
       cal.set(Calendar.MINUTE, 23);
       cal.set(Calendar.SECOND, 0);
       cal.set(Calendar.MILLISECOND, cur_cal.get(Calendar.MILLISECOND));
       cal.set(Calendar.DATE, cur_cal.get(Calendar.DATE));
       cal.set(Calendar.MONTH, cur_cal.get(Calendar.MONTH));

   alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);

但这不会在下午 1:30 触发我的服务。注释掉的代码工作正常。它会在当前时间 30 分钟后触发我的警报。但是当我硬编码的时候。它不起作用。我无法弄清楚 Calender cal 的代码片段中的错误。

我究竟做错了什么?

4

1 回答 1

0

如果你想要一个重复的警报,你应该使用它alarmManager.setRepeating(...)alarmManager.set(...)只会触发一次。

于 2012-05-03T08:42:48.490 回答