Мое приложение показывает контент для сайта, который также имеет систему уведомлений. Я хочу показать, есть ли новые уведомления, и я использую AlarmManager
, который вызывает IntentService
.
Мой вопрос: где мне начать / зарегистрировать AlarmManager
? Я включил это в onCreate()
своей деятельности только для проверки концепции (и она работает отлично, большое спасибо :)), но если вы начнете эту деятельность дважды, вы получите несколько аварийных сигналов.
Единственное возможное решение, которое я придумала, - это, но я не знаю, будет ли это наилучшей практикой
- Запустить менеджер в
onCreate()
, если предпочтение «тревога запущена» ложно
- Установите некоторую переменную, которую она запускает в настройках.
Теперь, если по какой-то причине сигнал тревоги прекратится, перезапустить его невозможно. Итак, вариация будет:
- Всегда звоните, отмените в
onCreate()
- А затем всегда устанавливайте будильник.
Это похоже на общую закономерность: желание периодически получать информацию с будильником, а не устанавливать этот будильник более одного раза. Как мне это сделать? Когда, где и как зарегистрировать будильник?
Кроме того, продолжая комментарий @Zelimir: можете ли вы проверить, уже установлен ли определенный сигнал тревоги?
В идеале, будильник должен быть установлен независимо от того, какая активность запускается или нет, но это может быть другое.
Для полноты, это код, который я сейчас использую для включения будильника:
AlarmManager alMan = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(this, CommentService.class);
PendingIntent penInt = PendingIntent.getService(this, 0, i, 0);
alMan.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime(),
AlarmManager.INTERVAL_FIFTEEN_MINUTES,
penInt);
Для еще большей полноты описание приложения / ситуация.
Приложение в основном показывает блоги (журналы, если хотите) с определенной страницы. У него есть действия для добавления записи, просмотра записей, добавления комментариев и т. Д. На «материнском» сайте есть возможность получать уведомления (например, число, которое вы видите здесь на SO, когда вы получаете сообщение). Я хочу показать, есть ли новые сообщения, и поэтому получать их каждые XX минут. На данный момент он будет отображаться в панели уведомлений, но позже может появиться виджет.
Если вам нужна дополнительная информация: приложение называется Androblip и поддерживает сайт blipfoto.com