У меня проблема с AlarmManager. Я могу настроить сигнал тревоги с этим кодомAlarmManager не запускается в определенное время
private void setAlarm(long when) {
Intent intent = new Intent(NoteActivity.this, AlarmReceiver.class);
intent.putExtra("ID", note.getId());
AlarmManager manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, when, PendingIntent.getBroadcast(NoteActivity.this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT));
Toast.makeText(getApplicationContext(),"Reminder set up", Toast.LENGTH_SHORT).show();
}
Этот код работает хорошо, если я изложу long when = 5 * 1000; \\For example 5secs later
, но если я использую этот код
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
long selectedDate = date.getTime();
long timeSince1970 = System.currentTimeMillis();
long timeForAlarm = selectedDate - timeSince1970;
Intent intent = new Intent(NoteActivity.this, AlarmReceiver.class);
intent.putExtra("ID", note.getId());
AlarmManager manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, timeForAlarm, PendingIntent.getBroadcast(NoteActivity.this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT));
Toast.makeText(getApplicationContext(),"Reminder set for "+calendar.getTime().toString(), Toast.LENGTH_SHORT).show();
мои тревоги triggerd 2secs позже. Что я делаю неправильно? :/ Я пробовал AlarmManager.ELAPSED_REALTIME_WAKEUP
и AlarmManager.RTC_WAKEUP
, но ничего не изменилось.
Пожалуйста, не проверяйте мой вопрос как дублированный. Я не нашел что-то, чтобы попытаться решить мою проблему.
(Совет. Рассказывая сообщество не закрывать что-то как дубликат ничего не изменится, если это действительно дубликат В лучшем случае это будет только помочь ему получите больше для закрытия.): - \ –
@JonAdams Это правда. haha –