Я делаю будильник, который активируется, как и любой другой сигнал тревоги в час и минуту, которые пользователь выбирает. Я обнаружил проблему, когда время установлено на 0:00, тревога активируется немедленно.Тревога вызывается мгновенно, когда установлено время 0:00
У меня есть обычай AlarmManager
, в котором я называю график повторения, как это:
CustomAlarmManager alarmManager = new CustomAlarmManager(getActivity());
alarmManager.scheduleRepeatingAlarm(getActivity(),
alarmID, alarmHour, alarmMinute);
И для проблемного примера пропускают эти значения:
Id = 619
Hour = 0
Minute = 0
Это setRepeatingAlarm()
функция:
public void scheduleRepeatingAlarm(Context context, int alarmID, int hour, int minute) {
System.out.println("schedule is running");
Intent intent = new Intent(context, AlarmNotificationReciever.class);
Bundle extras = new Bundle();
extras.putBoolean(KEY_REPEAT, true);
extras.putInt("AlarmId", alarmID);
intent.putExtras(extras);
PendingIntent pIntent = PendingIntent.getBroadcast(context,
alarmID, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Calendar calender = Calendar.getInstance();
calender.set(Calendar.HOUR_OF_DAY, hour);
calender.set(Calendar.MINUTE, minute);
if (android.os.Build.VERSION.SDK_INT >= 19) {
setSingleExactAlarm(calender.getTimeInMillis(), pIntent);
} else {
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calender.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pIntent);
}
}
Я предполагаю, что проблема - goin г быть с этими линиями здесь:
Calendar calender = Calendar.getInstance();
calender.set(Calendar.HOUR_OF_DAY, hour);
calender.set(Calendar.MINUTE, minute);
и эта линия при настройке сигнализации:
setSingleExactAlarm(calender.getTimeInMillis(), pIntent);
Вечно другой часовой и минутной комбинации, которую он, кажется, работает и рассматривать его как время, чтобы уйти , Но в течение часа = 0 и минуты = 0 он сразу срабатывает.
Заранее за вашу помощь.
Проблема в день. Если вы установите час до 0:00, система будет звонить в тот же день. Вы должны добавить один день для стрельбы на следующий день в 0:00. Он срабатывает напрямую, потому что срабатывает тревога, если прошло заданное время ..... – Opiatefuchs