//run dialog fragment in fragment
Fragment fragmentByTag = getFragmentManager().findFragmentByTag(DownloadDialogFragment.TAG);
if (fragmentByTag == null) {
CustomDialog customDialog = new CustomDialog();
customDialog.setTargetFragment(currentFragment, REQUEST_DOWNLOAD_FRAGMENT);
customDialog.show(getFragmentManager(), CustomDialog.TAG);
}
//in dialog, init result to onActivityResult
getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, optionalIntent);
getActivity().setResult(Activity.RESULT_OK);
//catch result in main fragment
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_DOWNLOAD_FRAGMENT && resultCode == Activity.RESULT_OK) {
..todo here
} else
super.onActivityResult(requestCode, resultCode, data);
}