2012-03-07 4 views
3

У меня есть вопрос о BroadcastReceiver в Android, скажем, о системном широковещательном приемнике BOOT_COMPLETED. Если я написал прослушиватель для трансляции после загрузки системы и ее установки. Как система Android будет знать, что она должна уведомить мое приложение, так как мое приложение не работает, а просто установлено? Разве что все производные классы BroadcastReceiver всегда находятся в памяти (или система загружает их в память после загрузки), и всякий раз, когда происходит какая-либо трансляция, все соответствующее приложение может ее получить.Как широковещательный приемник работает в Android

Благодаря Braj

ответ

2

Когда трансляция BOOT_COMPLETED посылается, то Android система проверяет манифестов загруженных приложений, чтобы увидеть, если что-то имеется в виду, чтобы обрабатывать это сообщение. То же самое верно для неявных намерений и всех передач.

Манифесты являются открытыми и позволяют системе знать, что может делать и будет делать ваше приложение.

+0

Спасибо за ответ. Означает ли это, что все Манифесты всегда находятся в памяти? Это связано с тем, что, как только мы установим какое-либо приложение, оно будет сохранено. – Androidme

+0

Это не совсем точно. Файл манифеста анализируется и регистрируется в системе Android, когда приложение установлено. Никакие файловые операции на самом деле не происходят при отправке намерения, а рассматриваются внутренние структуры данных, созданные из проанализированных манифеста. –

+0

@Chris - спасибо за разъяснения – Androidme

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