0

У меня есть фрагменты F1 и F2.Нужно отправить трансляцию в onActivityResult, но целевой фрагмент все еще приостановлен

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

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

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

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

+0

Почему бы не проверить данные, которые необходимо обновить в F1 на нем onResume или видимость? что именно вы отправляете в эфир? – Shahar

+0

Не используйте трансляции и приемники, чтобы попытаться передать данные между фрагментами в одной и той же Деятельности. Используйте стандартный метод передачи данных через Хостинг. –

+0

@Shahar В эфире я прошу F1 предпринять действие (выберите элемент в навигационном ящике). Спасибо за ваш комментарий. –

ответ

0

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

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