Напоминания не срабатывают в правильное время, срабатывает только при перезагрузке устройства.Напоминания не запускаются в правильное время
День, когда я создал напоминание, в тот же день я получал его в правильное время, но после этого он запускается только при перезагрузке устройства (не в правильное время, которое я выбрал).
Как я создал 5 различных напоминаний - один для запуска каждый день, второй, чтобы вызвать на каждые 2 дня, третий, чтобы вызвать на каждый 3-й день, четвертый, чтобы вызвать Еженедельно и пятый, чтобы вызвать в месяц
Но всякий раз, когда я перезагрузите мое устройство, все они запускаются в одно и то же время (например, если я перезагружу свое устройство по адресу: 05: 00, то все они запускаются одновременно), тогда как я ожидал, что Eye Drop начнет срабатывать в 12:15, Cyrip запускается при 13: 20 на каждый второй день и так далее.
AlarmReceiver.java:
public void setRepeatAlarm(Context context, Calendar calendar, int ID, long RepeatTime) {
mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
// Put Reminder ID in Intent Extra
Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra(ReminderEditActivity.EXTRA_REMINDER_ID, Integer.toString(ID));
mPendingIntent = PendingIntent.getBroadcast(context, ID, intent, PendingIntent.FLAG_CANCEL_CURRENT);
// Calculate notification timein
Calendar c = Calendar.getInstance();
long currentTime = c.getTimeInMillis();
long diffTime = calendar.getTimeInMillis() - currentTime;
// Start alarm using initial notification time and repeat interval time
mAlarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime() + diffTime,
RepeatTime , mPendingIntent);
// Restart alarm if device is rebooted
ComponentName receiver = new ComponentName(context, BootReceiver.class);
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(receiver,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
Проверьте вы ID, от mPendingIntent = PendingIntent.getBroadcast (контекст, ID, намерение, PendingIntent.FLAG_CANCEL_CURRENT); Вы можете переопределить другие аварийные сигналы и установить только 1. Если вы установите более старую тревогу, это не должно мешать другому, но идентификаторы, которые вы установили для них, будут – Tazz