私は多くの記事を読みましたが、特定の質問に対する回答が見つからなかった/または見逃しただけです。一般的なケースを実装しようとしていると思うのは奇妙な原因です。ええと、私がしたいのは、週末を除く毎日、月曜日から金曜日までの特定の時間にアラームを鳴らすように設定することです。
現在、私は次のことをしています:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
Intent intent = creating an Intent here
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
私が理解している限り、次のコードは指定した時間にアラームを発生させ、AlarmManager.INTERVAL_DAY のために毎日実行します。
私は自分の仕事を達成するために次のことを考えました:
for(int i = 1; i < 6; i++) {
calendar.add(Calendar.DAY_OF_WEEK, i);
}
しかし、このロジックの正しさについてはわかりません。お願いできますか 1. 間違いがあれば訂正してください 2. 適切な解決策を提案してください
アップデート:
さて、私は次のことを考えました:
calendar.set(Calendar.DAY_OF_WEEK, 1);
その後
am.setRepeating(AlarmManager.RTC_WAKEUP, date.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 5, pendingIntent);
その結果、最初の日を月曜日に設定し、それを 5 回繰り返します。月曜日から金曜日まで、現在の日付に関係なく、ユーザーがアラームを設定している場合、それは正しいですか、それとも不足していますか? ところで、setRepeating を更新して、1 週間だけでなく毎週繰り返すように設定するにはどうすればよいですか?
アップデート1:
上記のコードを使用してエラーを理解したと思いますが、奇妙なことを行うため、初期化日は月曜日ですが、繰り返し間隔は月曜日から金曜日まで毎日ではなく、5 日に 1 回です。