私は以下のリンクhttps://developer.android.com/training/scheduling/alarms.htmlに従っています。alarmManagerを使用してcalendar.getTimeInMillis()を渡して通知を設定すると、意図した時刻に瞬時に通知がトリガーされます
RTCの最初の例は、すべての日に特定の時間のアラームを設定します。同じコードに従った後でも、トリガされると思われる時点でアラームはトリガされません。代わりに、notification
は、時間ピッカーの助けを借りて行われた時間の設定の直後にトリガされます。続いて私もsetInexactRepeating
を試みたが、何のluck.Iがなかった私のコードスニペット、
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, NotificationReceiver.class);
PendingIntent intentalarm = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY,4);
calendar.set(Calendar.MINUTE, 30);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, intentalarm);
代わりのsetRepeating
であることも、私は
calendar.getTimeInMillis()
を変更し、アラームが丁度後にトリガSystemClock.elapsedRealtime() + 120 * 1000
を使用したときのことを追加したいと思いますそれが設定されてから2分。
しかし、calendar.getTimeInMillis()
が使用されている場合、意図した作業が行われる代わりに、即時トリガが発生します。
誰でも私が解決策を見つけるのを助けることができるのであれば、本当に非常に役立つでしょう。メモのためだけに、アラームが現在のデバイス時間より前に設定されていればアラームがすぐにトリガされますが、
NotificationReceiver.class
は生成され、タイトルに表示されます。しかし、それが現れる時が心配の原因です。