ユーザーはさまざまなアラームを作成できます。したがって、いつアラームを鳴らすかはユーザー次第であり、彼は複数のアラームを鳴らすことができます。私はスケジュールされたすべてのアラームをデータベースに保持し、さらに参照できるようにユーザーに表示します。以下は私のコードです。
if("CREATEONCE".equals(strparam1))
{
am.set(AlarmManager.RTC_WAKEUP, l2, pi);// l2 is time in millis
}else if("CREATEREPEAT".equals(strparam1))
{
am.setRepeating(AlarmManager.RTC_WAKEUP, l2, 86400000 , pi); //l2 is time in millis
}
これがアラームを設定するコードです。ユーザーは複数のアラームを設定できます。たとえば、彼はアラームを7.00 am
1 回、8.00 am
1 回、および9.00 am dialy
. したがって、 foronce alarms
コードは if ブロックに行き、 for 、コードはrepeat daily
コード内の else if ブロックに行きます。
上記の 3 つのアラームが でユーザーによって設定されている場合6.00 am
。アラームを設定した直後にデバイスを再起動すると、アラーム全体がトリガーされません。
したがって、 post1、post2など、これに関する多くの投稿を読みました。それらはすべてbroadcast receiver
、デバイスが再起動されたことを知るために使用しただけです。ブロードキャスト レシーバーがデバイスが再起動されたというヒントを受信した後、すべてのアラームを機能させるために、sqlite データベースから情報を取得して上記のコードをもう一度繰り返す必要がありますか? もしそうなら、誰かが放送受信機からそれを行う方法を手伝ってもらえますか? コード スニペットを歓迎します
ユーザーが を設定した場合50 alarms
、50 個のアラームすべての情報を取得して再度設定するのは長いプロセスではありませんか?