18

曜日ごとに (特定の時間と分に) 2 つのアラームを設定するアプリを作成しています。アラームは毎週永遠に繰り返されます。

ポイントは、ユーザーがアラームを変更した場合、以前に設定したアラームをキャンセルする必要があるということです。

アプリケーションによって設定されたすべてのアラームを簡単にキャンセルする方法はありますか?

4

3 に答える 3

17

以前のアラームをキャンセルする場合は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ます。

これを手に入れてください!

于 2013-07-10T12:17:35.400 に答える
10

私はあなたが目を引くことができると思います:AlarmManager.Cancel

そして、その質問/回答について: Android: AlarmManager で設定されたすべての PendingIntents を取得します

そこに記載されているように、AlarmManager に PendingIntent が含まれていることを伝えるように依頼することはできません。しかし、キャンセルしたいものと同様の PendingIntent を作成できると思います;)。

于 2013-07-10T12:02:11.813 に答える