运行 选定日期的警报
Run Alarm In Selected Days
我想在选择日期、小时和分钟后启动闹钟。
到目前为止,这是我的代码:
public void startAt() {
Intent alarmIntent = new Intent(backgroundApplication.this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(backgroundApplication.this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.DAY_OF_WEEK,calendar.WEDNESDAY);
calendar.set(Calendar.HOUR_OF_DAY,7);
calendar.set(Calendar.MINUTE,35);
manager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
1000 * 5, pendingIntent);
}
例如,我将 DAY_OF_WEEK 设置为今天(星期五),效果很好。但是当我把它改成星期三,或者星期五之前的其他一天,它仍然是 运行.
有没有其他方法可以在选定的日期开始?
根据文档http://developer.android.com/reference/android/app/AlarmManager.html#setRepeating%28int,%20long,%20long,%20android.app.PendingIntent%29,第二个参数是以毫秒为单位的触发时间,如果将其设置为过去的时间,警报将立即触发。如果您希望闹钟只从下周三开始,那么您必须将日历时间提前到下周三calendar.add(Calendar.WEEK_OF_MONTH, 1)
。顺便说一句,在您的代码中,默认情况下您不需要 calendar.setTimeInMillis(System.currentTimeMillis())
.Calendar.getInstance()
将 return 当前时间。您还应该使用静态字段 Calendar.WEDNESDAY
.
我想在选择日期、小时和分钟后启动闹钟。
到目前为止,这是我的代码:
public void startAt() {
Intent alarmIntent = new Intent(backgroundApplication.this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(backgroundApplication.this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.DAY_OF_WEEK,calendar.WEDNESDAY);
calendar.set(Calendar.HOUR_OF_DAY,7);
calendar.set(Calendar.MINUTE,35);
manager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
1000 * 5, pendingIntent);
}
例如,我将 DAY_OF_WEEK 设置为今天(星期五),效果很好。但是当我把它改成星期三,或者星期五之前的其他一天,它仍然是 运行.
有没有其他方法可以在选定的日期开始?
根据文档http://developer.android.com/reference/android/app/AlarmManager.html#setRepeating%28int,%20long,%20long,%20android.app.PendingIntent%29,第二个参数是以毫秒为单位的触发时间,如果将其设置为过去的时间,警报将立即触发。如果您希望闹钟只从下周三开始,那么您必须将日历时间提前到下周三calendar.add(Calendar.WEEK_OF_MONTH, 1)
。顺便说一句,在您的代码中,默认情况下您不需要 calendar.setTimeInMillis(System.currentTimeMillis())
.Calendar.getInstance()
将 return 当前时间。您还应该使用静态字段 Calendar.WEDNESDAY
.