0

アラーム機能もある時計アプリを作成しています。時刻はきちんと表示されており、複数のアラームも適切に設定しています。

リストビューでアラームのリストを表示できるように、異なる 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 (ブロードキャスト レシーバー) が呼び出されます。どこが間違っているのかわかりませんか?

誰か助けてくれませんか?

ありがとう!

4

1 に答える 1