Подтвердить что ты не робот

Что происходит, когда я дважды запускаю будильник?

Я прыгаю через обручи (ну, это не так сложно), чтобы дважды не запускать будильник. Основной код выглядит следующим образом:

AlarmManager mgr=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(this, MyService.class);
PendingIntent pi=PendingIntent.getService(this, 0, i, 0);
mgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, pi);

Было бы важно, буду ли я запускать этот код каждый раз, когда начнется мое приложение? Я не вижу никаких негативных последствий, когда вы вызываете это примерно 10 раз как эксперимент с избытком, но я не могу найти никаких ссылок, если это совпадение или ожидаемое поведение.

Если это не особенно ожидаемо, оно кажется "неправильным". Это может привести меня к неприятностям позже, если изменится поведение AlarmManager.

4b9b3361

Ответ 1

Так как метод отмены для AlarmManager в порядке с "аналогичным" намерением для отмены тревоги, мы можем сказать, что платформа распознает намерение, заданное именем класса. Следовательно, повторение этого вызова не должно быть проблемой, поскольку платформа будет знать, что для такого ожидающего намерения уже существует сигнал тревоги.

Вот сообщение , в котором говорится что-то подобное.