曜日ごとに (特定の時間と分に) 2 つのアラームを設定するアプリを作成しています。アラームは毎週永遠に繰り返されます。
ポイントは、ユーザーがアラームを変更した場合、以前に設定したアラームをキャンセルする必要があるということです。
アプリケーションによって設定されたすべてのアラームを簡単にキャンセルする方法はありますか?
曜日ごとに (特定の時間と分に) 2 つのアラームを設定するアプリを作成しています。アラームは毎週永遠に繰り返されます。
ポイントは、ユーザーがアラームを変更した場合、以前に設定したアラームをキャンセルする必要があるということです。
アプリケーションによって設定されたすべてのアラームを簡単にキャンセルする方法はありますか?
以前のアラームをキャンセルする場合はPendingIntent
、フラグにPendingIntent.FLAG_CANCEL_CURRENT
. PendingIntent
すでに作成されている場合は、新しいものを生成できなくなります。また、アラームを設定する前に、同じことをキャンセルしてからPendingIntent
、アラームを設定してください。次のように試してください:
AlarmManager 2AlarmsInWeekAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getService/getActivity(context, int, intent, PendingIntent.FLAG_CANCEL_CURRENT);
2AlarmsInWeekAlarmManager.cancel(pendingIntent);
そして、セットまたはsetRepeating
メソッドを使用できます。あなたの場合、それはあるべきです
2AlarmsInWeekAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, "timeInMillis", "repetitionTimeInMillis", pendingintent);
これにより、アラームを設定する前に、以前の同じアラームがすべてキャンセルされることが保証されPendingIntent
ます。
これを手に入れてください!
私はあなたが目を引くことができると思います:AlarmManager.Cancel
そして、その質問/回答について: Android: AlarmManager で設定されたすべての PendingIntents を取得します
そこに記載されているように、AlarmManager に PendingIntent が含まれていることを伝えるように依頼することはできません。しかし、キャンセルしたいものと同様の PendingIntent を作成できると思います;)。