Я использую AlarmManager
в своем приложении для установки будильника в подходящее время.В моем приложении несколько сигналов тревоги, поэтому каждый раз, когда пользователь сохраняет сигнал тревоги, я нахожу, какой сигнал тревоги должен быть воспроизведен в следующий раз, и передаю идентификатор этого сигнала тревоги как дополнительное намерение.Вот код, который я использую для этого:
Intent intent = new Intent(this, AlarmBroadcastReceiver.class);
intent.putExtra("alrmId", finalAlr);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 56, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
alarmManager.set(AlarmManager.RTC_WAKEUP, (System.currentTimeMillis() + (finalAlrDay * 24 * 60 * 60 * 1000) + (finalAlrHr * 60 * 60 * 1000) + (finalAlrMin * 60 * 1000) + (finalAlrSec * 1000)), pendingIntent);
Здесь я отменяю, если есть какой-либо старый набор тревог, а затем добавляю новый.Все аварийные сигналы воспроизводятся в нужное время, но проблема в том, что значение alrmId
, которое я установил в intent.putExtra
, всегда остается таким же, как при первом его настройке.
Например, если яУстановите будильник в первый раз, и в это время значение alrmId
будет установлено равным «1», тогда оно всегда останется неизменным независимо от того, какое значение я введу после этого.Я попытался отладить его и убедился, что intent.putExtra("alrmId", finalAlr)
задает правильное значение, так что это не проблема.В чем проблема?