синхронизация трансляций и пробуждения Android

У меня есть служба A, которая запускается WakefulBroadcastReciever из AlarmManager. Служба A следует стандартному шаблону - выполняет вычисление, затем отправляет локальную широковещательную рассылку, чтобы сообщить системе о результатах, затем вызывает WakefulBroadcastReceiver.completeWakefulIntent ().

В зависимости от результатов расчета, т.е. содержимого локальной трансляции, другим локальным службам может потребоваться немедленное выполнение некоторых вычислений. Однако гарантирую ли я, что другие службы вообще получат локальную трансляцию до того, как устройство вернется в спящий режим?

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

Спасибо!


person komark    schedule 17.03.2014    source источник


Ответы (1)


Local Broadcast Manager имеет режим синхронизации. Остерегаться ! onReceive работает в потоке, из которого он вызывается, а не в основном (UI) потоке.

person Mr_and_Mrs_D    schedule 18.03.2014
comment
Действительно, его sendBroadcastSync. Спасибо. - person komark; 19.03.2014
comment
@komark: посмотрите здесь stackoverflow.com/questions/20820244/ - person Mr_and_Mrs_D; 19.03.2014