Случай из личного опыта. Разработчикам под android хорошо известен метод startActivityForResult, который можно вызывать у экземпляра activity или fragment-а для запуска другого экрана с целью возврата результата. На первый взгляд, достаточно типичная ситуация и никакой магии тут нет, хотя это не так.. по крайней мере невсегда.

Недавно в одном из приложений мне пришлось сделать сложный экран, который представлял собой fragment, состоящий из нескольких вложенных fragment-ов.  Общая архитектура экрана мне нравилась:  целевой fragment экрана строился из других fragment-ов как из «кирпичей», при этом каждый из вложенных fragment-ов использовался еще и на других экранах. Таким образом, общая логика работы была вынесена внутрь fragment-ов и успешно применялась на различных экранах. Внутри некоторых из вложенных fragment-ов требовалось вызвать метод startActivityForResult, чтобы затем получить результат в методе onActivityResult того же fragment-а. Однако, оказалось, в подобной ситуации метод onActivityResult для fragment-а не вызывается. Для меня это стало неожиданнстью. Разобраться в ситуации помог пост на stackoverflow.

В качестве решения использовался «костыль»: в целевом fragment-е  в методе onActivityResult «вытягиваем» все вложенные fragment-ы (кстати, в данной ситуации надо воспользоваться ChildFragmentManager-ом, а не просто FragmentManager-ом), и каждому из них «адресуем» результат. Ну и, вызов метода startActivityForResult внутри вложенного fragment-а необходимо сделать от имена fragment-а контейнера, получить объект которого можно методом getParentFragment. Вот и все, чем хотел поделиться. Спасибо за внимание =)

   public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        List<Fragment> fragments = getChildFragmentManager().getFragments();
        if (fragments != null) {
            for (Fragment fragment : fragments) {
                fragment.onActivityResult(requestCode, resultCode, data);
            }
        }
    }