我打算开发一个应用程序,它会询问蓝牙开启并关闭用户每周几天的时间,然后使用警报服务来执行此操作。我使用了以下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的代码片段中的错误。
我做错了什么?
答案 0 :(得分:0)
如果您想要重复闹铃,请改用alarmManager.setRepeating(...)
。 alarmManager.set(...)
只会触发一次。