Я пытаюсь создать простую приложение для будильника в Android Studio, но у меня возникли проблемы с определением того, как правильно использовать AlarmManager
310 и BroadcastReceiver
.Служба регистрации Android Studio не запускается автоматически
В моей MainActivity
я инстанцирован все, что нужно для AlarmManager
(Intent
, PendingIntent
, и я с помощью календаря провести время, полученное от TimePicker
). У меня есть эта линия в onClick
случае кнопка в
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
Приемник называется AlarmReceiver
и в его onReceive()
я, сейчас,
Toast.makeText(context, "I'm running", Toast.LENGTH_SHORT).show();
Log.e("Receiver", "Receiver entered");
Для целей тестирования, установить время будильника, чтобы быть одним минуты от текущего времени, когда я отлаживаю приложение. После установки времени я нажимаю кнопку, которая устанавливает AlarmManager
. Сообщение Toast и сообщение Log не отображаются самостоятельно, как только время становится сигналом тревоги. Они отображаются только в том случае, если я нажимаю кнопку, когда время находится в пределах минуты, которое является временем будильника.
Например, если время будильника равно 3:00, а текущее время равно 2:59, и я нажал кнопку, чтобы установить AlarmManager
. Когда это становится 3:00, сообщения не отображаются. Они будут отображаться только в том случае, если я нажму кнопку в течение минуты 3:00.
Это нормальное поведение? Если да, то каким образом я могу настроить его так, чтобы сообщения отображались автоматически, когда все установлено так, что я могу продлить его до мелодии звонка позже?
Я гарантировал, что значения времени прав и что приемник задается в попытке manifest
Вы отправили намерение начать обслуживание ?? – Dhruv
Да, я это сделал. Я добавил службу для воспроизведения mp3-файла для целей тестирования. Проблема в том, что он по-прежнему не запускается автоматически, когда текущее время находится в тревожном времени. Я должен нажать кнопку – bitscuit