Мне нужно добавить push-уведомления в приложение для Android. Уведомление должно отображаться каждый день в определенное время (например, в 13:00). Для этого я использую AlarmManager. Я регистрирую будильник, когда приложение запускается в первый раз. Но у меня проблема. Если я устанавливаю приложение на устройство, например, в 1 час 10 минут, то будильник запускается сразу после запуска моего приложения. Но это неправильно, потому что мне нужна эта тревога для запуска на следующий день, а не в текущий день. Может ли кто-нибудь помочь мне и рассказать, как установить ежедневно будильник, который должен начать работать в день с текущего дня.AlarmManager с флагом AlarmManager.INTERVAL_DAY выполняется в текущий день, а не на следующий день
Это мой код, который я использую на текущий
private void registerAMAlarmManger(){
mAMAlarmIntent = new Intent(this, AMAlarmReceiver.class);
mAMPendingIntent = PendingIntent.getBroadcast(this, 0, mAMAlarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
SharedPreferences sPrefs = getSharedPreferences(Constants.PREFERENCES_NAME, Context.MODE_PRIVATE);
int amTime = sPrefs.getInt(Constants.MORNING_TIME, 9);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, amTime);
calendar.set(Calendar.MINUTE, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY, mAMPendingIntent);
}
Спасибо за ответ. Я хотел бы уточнить эту часть кода «if (calendar.getTimeInMillis()
И еще один вопрос: calendar.setTimeInMillis (System.currentTimeMillis()); Нужна ли эта строка кода? Потому что в некоторых руководствах о AlarmManager она отсутствует. –
Да, я добавляю один день .. I.e nxt day – vaibhav