处理程序中的关闭片段

Close fragment in hanlder

我想创建自己的 snackbar 扩展 Fragment class。但我不确定在几秒钟后关闭 fragment。因为我使用 hanlder 来关闭这样的片段:

private Runnable run = new Runnable() {
        @Override
        public void run() {
            Fragment frag = getActivity().getSupportFragmentManager().findFragmentByTag(TAG);
            if(frag != null) {
                getActivity().getSupportFragmentManager().popBackStackImmediate(TAG, FragmentManager.POP_BACK_STACK_INCLUSIVE);
            }
        }
    };

我知道扩展库,但我需要自定义 snackbars。 有时我收到:

> android.support.v4.app.FragmentActivity.getSupportFragmentManager()'
> on a null object reference

[编辑:]

onPause() 我调用的方法:

@Override
    public void onPause() {
        super.onPause();
        handler.removeCallbacksAndMessages(null);
    }

如果您的片段不再附加,getActivity 可以 return null。

确保检查当前片段是否已添加且未分离

isAdded() && !isDetached()