dalv_happy
@dalv_happy

Как сделать отложенную отправку уведомлений на андроиде?

Есть расписание на которое может подписаться пользователь, при этом нужно уведомить его за 15 минут до начала. Использую AlarmManager но проблема заключается в том что в любой момент может произойти изменение времени расписания или пользователь может изменить в настройках время за которое его предупреждать (например поставить не 15 минут а 5). При и время вывода уведомление должно измениться. Как это сделать?
  • Вопрос задан
  • 298 просмотров
Решения вопроса 1
@mitekgrishkin
Привяжитесь к requestCode. Когда у вас будет вызван листенер изменения времени, просто перезаписываете alarmIntent с соответстующим id.
Т.е. храните alarmId в поле requestCode.
Как-то так:
public void setAlarm(Context context, Integer alarmId, long milliseconds) {
      AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
      Intent intent = new Intent(context, AlarmReceiver.class);
      intent.putExtra(ID, alarmId);
      PendingIntent alarmIntent = PendingIntent.getBroadcast(context, alarmId, intent, 0);

      Log.d("AlarmReceiver", "Started");
      alarmMgr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
         SystemClock.elapsedRealtime() + milliseconds, alarmIntent);
   }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы