LINUX.ORG.RU

Как работает BroadcastReceiver на Android

 


0

1

Добрый день. Подскажите, если Activity занята какой-то работой и тут приходит сообщение в созданный ей BroadcastReceiver то происходит мгновенное переключение на обработку этого запроса или поток управления что-то там доделывает и ждет пока все операции не будут завершены?


У андроида есть такое понятие как очередь выполнения, называется looper, к нему в очередь добавляются события навроде обработки широковещательых сообщений или обработка кода активити. Еще есть такое понятие как главный тред, который выполняет свою очередь looper, вот главному треду в очередь попадает крд главного активити но поидее он не должен виснуть слишком на долго а отработать и отвалить. В этот же главный тред приходят и другие компоненты лупера

anonymous
()

Поэтому переулючение будет не мгглвенное если код активити еще не отработал, но если он зависнет надолго то вылетит анр

anonymous
()
Ответ на: комментарий от anonymous

Т.е. это что-то вроде «контекста переключения потоков» главный тред периодически посматривает, нет ли там каких-нибудь Intent переданных sendBroadcast(), где можно про все про это как-нибудь поглубже почитать? А то что я видел, все как-то поверхностно.

da17
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.