アラームの結果として通知を起動するために使用される通知サービスを作成するために、すべてをうまく管理しました。残念ながら、AlarmManager を使用したアラームの設定は正しく機能しません。数分後に起動します (タイムゾーンの問題を示す正確な時間ではありません)。繰り返し期間は 1 週間なので、定数 INTERVAL_DAY を使用して 7 を掛けました。一方の PendingIntent が他方を置き換えないようにするために、dayOfWeek を 2 番目のパラメーターとして PendingIntent.getService() に渡します。ログを記録して、アラームが起動する時刻の正確さを確認します。
Log.d(TAG, "next alarm " + df.format(cal.getTime()));
設定されたすべてのアラームをリストする方法は本当にありませんか?少なくとも自分のアプリからのアラームは? これがエラーを追跡する唯一の方法だと思います。
私のコード:
cal.setTimeInMillis(System.currentTimeMillis());
cal.add(Calendar.DATE, 1);
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, minute);
Log.d(TAG, "next alarm " + df.format(cal.getTime()));
Intent showNotificationIntent = new Intent(context, NotificationService.class);
dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
alarmIntent = PendingIntent.getService(context, dayOfWeek, showNotificationIntent, 0);
getAlarmManager(context).setInexactRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
INTERVAL_WEEK, alarmIntent);
毎日アラームを鳴らしたいのですが、ユーザーが設定できるさまざまな時間にアラームを鳴らしたいと思います。そのため、週に 1 回、最大 7 つのアラームを使用しています。
同様の質問に対する多数の回答を読んだ後でも(重複した質問を作成するつもりはありません)、問題を見つけることができませんでした。