2012-05-22 10 views
5

У меня есть радиовещательная служба, зарегистрированная в манифесте, которая получает уведомления от AlarmManager. Все это работает отлично, пока приложение работает, т.е. вызывается метод onReceive().BroadcastReceiver, когда приложение не работает

Однако, если я принудительно остановил приложение, чтобы проверить, будет ли broadcastReceiver по-прежнему получать уведомления от AlarmManager во время его отсутствия, метод onReceive() никогда не вызывается.

Может ли принудительная остановка не использоваться для проверки приемника AlarmManager & таким образом? Кажется, что некоторые ответы говорят, что это не сработает, а некоторые говорят, что это должно.

Если нет, есть ли способ проверить это?

Спасибо.

+0

Вы определили свой «BroadcastReceiver» в манифесте? –

+0

@jFort: Используете ли вы один из типов WAKEUP для тревоги? Если нет, это может быть причиной, но я не уверен. – Squonk

+0

Да, широковещательный приемник определен в манифесте. И диспетчер сигнализации определен AlarmManager.RTC – jFort

ответ

3

Если ваш ресивер зарегистрирован в вашем манифесте, он всегда должен работать. Даже если ваше приложение закрыто.

Проблема может быть сигналом тревоги. Аварийные сигналы могут удаляться после закрытия приложения.

+0

Спасибо за это. Если я это знаю ** должен ** работать, я продолжу поиск и устранение неисправностей. Есть ли способ узнать, что происходит с этими тревогами? – jFort

+0

Аварийный сигнал означает что-то неожиданное. Таким образом, вы должны, вероятно, повторно инициализировать аварийные сигналы при восстановлении программы. Я точно не знаю, что происходит с сигналами тревоги. Извините –

+1

Для android> версия 3.0, ваш приемник перестанет работать, когда ваше приложение закрыто! –

1

Согласно комментариям к this answer, вы не можете протестировать этот тип вещей, убив приложение самостоятельно. Вы должны выбросить исключение, чтобы приложение «естественно».

Смежные вопросы