Необходимо отправить широковещательную рассылку в onActivityResult, но целевой фрагмент все еще приостановлен

У меня есть фрагменты F1 и F2.

F1 содержит BroadcastReceiver, который зарегистрирован/не зарегистрирован в onResume/onPause F1.

Когда я запускаю действие для результата из F2, и F1, и F2 приостанавливаются. В конце концов я получаю вызов F2 onActivityResult. Оттуда мне нужно отправить трансляцию на F1, но в этот момент onResume еще не вызывался, поэтому BroadcastReceives не слушает.

Какое лучшее решение в этом сценарии?

На данный момент я регистрирую приемник в onAttach/onDetach F1, чтобы он был активен при выполнении onActivityResult. Хотя это не похоже на лучшее решение.


person Mateus Gondim    schedule 26.11.2015    source источник
comment
почему бы не проверить данные, которые необходимо обновить в F1, на их onResume или видимость? что именно вы отправляете в эфир?   -  person Shahar    schedule 27.11.2015
comment
Не используйте широковещательные рассылки и приемники для передачи данных между фрагментами в одном и том же действии. Используйте стандартный способ передачи данных через Activity хостинга.   -  person Mike M.    schedule 27.11.2015
comment
@Shahar В трансляции я прошу F1 выполнить действие (выбрать элемент в панели навигации). Спасибо за ваш комментарий.   -  person Mateus Gondim    schedule 27.11.2015
comment
@МайкМ. Да, в этом случае я перестану использовать BroadcastReceiver. Спасибо за вашу помощь.   -  person Mateus Gondim    schedule 27.11.2015


Ответы (1)


После некоторых попыток я пришел к выводу, что лучше всего отказаться от использования BroadcastReceiver и вместо этого использовать onActivityResult из Activity, содержащего F1 и F2. В этом методе я напрямую вызываю метод F1, который выполняет ожидаемое действие.

Спасибо, Майк. М за предложение.

person Mateus Gondim    schedule 27.11.2015