Метод setResult(...)
в BroadcastReceiver
, это больше, чем что-либо другое для целей отслеживания.
Если вы знакомы с методом Activity
setResult(...)
, вы можете думать об этом методе в широковещательной рассылке таким же образом.Но вместо получения метода обратного вызова, такого как onActivityResult(int requestCode, int resultCode, Intent data)
, в случае действий, используется метод широковещания setResult(...)
, чтобы отслеживать результаты широковещания в определенном порядке, поэтому в документации говорится:
Работает только с широковещательными сообщениями, отправленными через Context.sendOrderedBroadcast.Все текущие данные результата заменяются значением, данным для этого метода.
Это означает, что вы можете использовать методы getResultCode()
, getResultData()
или getResultExtras()
, чтобы узнать, как обстоят дела во время выполнения метода onReceive(Context, Intent)
во всех различных BroadcastReceiver
s зарегистрирован для обработки вашей трансляции.Таким образом, вы можете узнать результат выполнения кода в предыдущем BroadcastReceiver
, вызванном перед тем, который в настоящее время выполняется для всех получателей.
В нем говорится только Context.sendOrderedBroadcast () , потому что обычныйвызов метода sendBroadcast(...)
может не ждать, пока 1 получатель завершит свое выполнение, прежде чем запускать другой поток для выполнения кода в другом получателе, который также прослушивает то же самое намерение.