DialogFragment 消失后,如何重新触发父 activity 的 onResume?

重写 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();
    }

你可能感兴趣的:(Android)