ユーザーが作成でき、ユーザーが無効にできるアラームが 1 つあります。ユーザーがアラームを無効にすると、アラームを使用してキャンセルしAlarmManager
、アラーム時刻をどこかに保存します。
ここで、ユーザーがアラームを再度有効にすると、アラームを作成し、アラームに保存された時間を設定します。問題は、保存された時刻でアラームを再作成すると、onReceive()
アラームブロードキャストのメソッドが即座に呼び出されることです。
以下のようにアラームを設定しています。
alarmManager.setRepeating(AlarmManager.RTC, time, AlarmManager.INTERVAL_DAY,
PendingIntent.getBroadcast(
this, alarmUniqueCode, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
ユーザーが無効をクリックしたときにアラームを無効にする方法:
sender = PendingIntent.getBroadcast(this, 1, intent, 0);
alarmManager.cancel(sender);
以下のように、マニフェスト ファイルにアラーム レシーバーを追加しました。
<receiver
android:name="com.sign.android.myscheduler.app.AlarmReceiver"
android:enabled="true"
android:exported="true" >
</receiver>
もう 1 つの質問: アラームを無効にするときは、cancel メソッドを呼び出します。ブロードキャスト レシーバーも登録解除する必要がありますか? はいの場合、2 つの異なるアラームがある場合はどうなりますか? 1 つのアラームだけに対してブロードキャスト レシーバーの登録を解除するにはどうすればよいですか?