Я полагаю, что вы уже знаете о стандартных синхронных и асинхронных компромиссах и ситуациях, когда они выгодны, а не так.
ИМО, ваш подход приемлем только в том случае, если трансляция также отправлена вашим собственным приложением. Если вас интересует системная трансляция, то 5-секундная задержка может варьироваться между допустимой и катастрофической. Представьте себе, что вы регистрируетесь для трансляции «сфотографировано», а затем через 5 секунд, когда пользователь делает еще одну фотографию, ваш синхронный вызов возвращается, и вы отображаете что-то, что раздражает пользователя без конца.
Кроме того, как вы предлагаете иметь дело со случаями, когда Трансляция не носит разовый, а скорее непрерывный характер?
Я пытался разработать API, используя AsyncTask
под одеялом; и разоблачить это синхронно. Но оказалось, что использование этого API будет намного более запутанным для клиентского кода. Я пришел к выводу, что некоторые вещи просто не должны выполняться синхронно; и продолжил с основанным на обратном вызове асинхронным подходом. Я хочу подчеркнуть, что трансляции не должны быть синхронными.
Только мои 2 цента.