アラーム機能もある時計アプリを作成しています。時刻はきちんと表示されており、複数のアラームも適切に設定しています。
リストビューでアラームのリストを表示できるように、異なる ID を使用して複数のアラームを作成し、同じものをデータベースに保存しています。現在、アラームのオンとオフの機能を設定しようとしています。そこに問題があります。
itemclick でアラームがオンの場合、次の助けを借りてオフに切り替わります。
Intent intent = new Intent(Main.this,TaskRecieverForAlarm.class);
PendingIntent pi = PendingIntent.getBroadcast(Main.this, Integer.parseInt(cont[0]), intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.cancel(pi);
上記のコードは、アラームを完全にキャンセルします。
私が使用しているアラームをオンにするには:
Intent intent = new Intent(Main.this, TaskRecieverForAlarm.class);
intent.putExtra("AlarmDate", cont[1]);
intent.putExtra("key", Integer.parseInt(cont[0]));
PendingIntent sender = PendingIntent.getBroadcast(Main.this, Integer.parseInt(cont[0]) , intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
if(type.equalsIgnoreCase("daily"))
{
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);
am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 1440*60000 ,sender);
}
else if(type.equalsIgnoreCase("weekly"))
{
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender); am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 7*1440*60000 ,sender);
}
オフをクリックしてオンにするとすぐに、アラーム時刻が現在の時刻から 4 時間または 5 時間であっても、アラームがトリガーされ、TASKReceiverFORAlarm (ブロードキャスト レシーバー) が呼び出されます。どこが間違っているのかわかりませんか?
誰か助けてくれませんか?
ありがとう!