Android: BroadcastReceivers останавливаются, если приложение убито? - PullRequest
4 голосов
/ 26 марта 2011

Если объявить BroadcastReceiver в AndroidManifest.xml, приемник работает, как и должно, даже при загрузке устройства, когда мое приложение еще не запущено, но если я заставляю мое приложение останавливаться из настроек, приемник, кажется, выходит из строя тоже.
Может ли быть так, что «принудительная остановка» в Android 2.2 также производит некоторую очистку после приложения (включая BroadcastReceivers или, возможно, сигналы тревоги, установленные приложением в AlarmManager, которые должны передавать намерения, которые я получаю)?
Кстати, как я могу видеть в Eclipse все широковещательные сообщения, отправляемые на устройство?

Ответы [ 2 ]

3 голосов
/ 26 марта 2011

Psycho * +1001 *

Force Stop не следует использовать, чтобы попытаться протестировать ваше приложение из неработающего состояния. Я бы сказал, что в лучшем случае поведение "неопределенное". Нередко после использования Force Stop в приложении вы должны вручную перезапустить его, чтобы получить ЛЮБОЕ его удобство использования (включая BroadcastReceiver). Если ваше приложение может получать BroadcastReceiver событий, включая BOOT_COMPLETE Broadcast, вам не нужно проверять его дальше.

Я полагаю, что целью Force Stop было полное прекращение работы раздражающего приложения. Если приложение часто запускается в фоновом режиме из-за того, что оно получает много передач и перезапусков, не думаете ли вы, что Force Stop должен предотвращать такое поведение до тех пор, пока пользователь не перезапустит приложение вручную?

Кроме того, я не верю, что есть способ просмотреть Broadcast события из Eclipse.

0 голосов
/ 26 марта 2011

В затмении нет способа увидеть «широковещание отправлено»
Также, если вы зарегистрировали широковещательную рассылку в манифесте, для которой вы хотите получить событие, то система вызовет метод onReceived

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...