2017-01-07 5 views
1

たとえば、私は毎日のアラームを設定することができますカレンダーがあります。この機能のために、私はアラームマネージャのメソッドsetRepeating()を取った。しかし、私の問題は、ユーザーが特定の日からアラームを削除したいが、すべてのアラームを削除しない場合に発生する。どうすればいい?アラームマネージャはアラームを設定する唯一の方法ですか?任意のアイデアをいただければ幸いです。アラームマネージャのアラームの削除

私が登場したのは、毎日00:00にトリガーし、すべてのアラームをメソッドalarmManager.set()で設定するブロードキャスト受信機を設定したことです。削除されたアラームはデータベースにあり、今日のアラームが削除されたものと一致する場合、ブロードキャストレシーバはこのアラームを設定しません。

答えて

0

AlarmManagerにはcancel();というメソッドがあり、役立つ可能性があります。しかし、あなたのケースでは、私はあなたの質問の後ろにあなたが与えたアプローチに行くことに、より自信を持っていたでしょう。

0

アラームマネージャの.cancel()メソッドを使用できます。しかし、1つのことを覚えておいてください。あなたがアラームを設定したことをアラームマネージャに提供している保留中のインテントに同じIDを与える必要があります。

PendingIntent pendingIntent = PendingIntent.getBroadcast(getContext(),id,intent, PendingIntent.FLAG_CANCEL_CURRENT); 
     alarmManager.cancel(pendingIntent); 

提供されるIDは、アラームの設定に使用されたものと同じである必要があります。 私はあなたを助けてくれることを願っています。 各アラームのidをどこかに保存し、必要に応じてキャンセルすることをお勧めします。

関連する問題