重写 DialogFragment 的 dismiss 函数,使用 FLAG_ACTIVITY_REORDER_TO_FRONT 方式重启父 activity,即可触发父 activity 的 onResume。
@Override
public void dismiss() {
try {
FragmentActivity fragmentActivity = getActivity();
LogM.i(TAG, "dialog dismiss, resume activity " + fragmentActivity.getLocalClassName());
// 触发背景 activity 重新 onresume
Intent intent = new Intent(getActivity(), fragmentActivity.getClass());
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
} catch (NullPointerException e) {
LogM.i(TAG, "dialog dismiss, resume activity failed, null pointer exception occurs");
}
super.dismiss();
}