运行 选定日期的警报

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.