Android 报警管理器设置要重复的选定日期。我这样做对吗?

Android 报警管理器设置要重复的选定日期。我这样做对吗?,android,alarmmanager,Android,Alarmmanager,用户选择希望触发警报的日期和时间。假设用户选择星期天、星期一和星期三,时间是23:10。我将alarmManager.setRepeating间隔设置为7*24*60*60*1000,即7天我这样做对吗? Intent intent = new Intent(this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContex

用户选择希望触发警报的日期和时间。假设用户选择星期天、星期一和星期三,时间是23:10。我将alarmManager.setRepeating间隔设置为7*24*60*60*1000,即7天我这样做对吗?

     Intent intent = new Intent(this, AlarmReceiver.class);
     PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 234324243, intent, 0);

    Calendar calendar = Calendar.getInstance();

    calendar.set(Calendar.DAY_OF_WEEK,getDay());
    calendar.set(Calendar.HOUR_OF_DAY, 23);
    calendar.set(Calendar.MINUTE, 10);

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),  7 * 24 * 60 * 60 * 1000, pendingIntent);

我不明白为什么那样不行。可能不是最好或最有效的方法,但它应该有效。它可能存在缩放问题,并且可能不精确。您所说的最有效方式是什么意思?您正在将报警管理器设置为以相当大的整数重复。您可以将其更改为AlarmManager.INTERVAL_DAY*7,这可能有助于提高效率。根据需要的精确程度,您还可以使用该常数执行setInexactRepeating,这显然也可以提高效率。