设置重复闹钟

时间:2015-07-01 15:54:39

标签: java android

我想设置闹钟以在特定的一天重复它。例如每个星期一4点20分, 我创建了一个方法,但没有工作。请帮助我解决这个问题

public void setAlarm(int day,int hour,int minit){

    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.HOUR_OF_DAY, hour);
    cal.set(Calendar.MINUTE,minit );
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    cal.set(Calendar.DAY_OF_WEEK, day);


    Intent intent = new Intent(this, MyBroadcastReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 234324243, intent, 0);
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    Long alarmTime = cal.getTimeInMillis();
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime, 24 * 60 * 60 * 1000 *7, pendingIntent);

}

现在,如果我选择星期一2:40,它只会在下周一2:40发出警报,而不是每个星期一2:40工作

2 个答案:

答案 0 :(得分:0)

您可以尝试使用setInexactRepeating。从API 19开始,所有重复警报都不准确。您可以详细参考official documents

答案 1 :(得分:0)

使用它为我工作的setInexactRepeating函数。