在hanlder的接近的片段

时间:2015-12-14 15:59:35

标签: android android-fragments android-custom-view android-snackbar

我想创建自己的snackbar扩展Fragment类。但我不确定在几秒钟之后关闭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);
    }

1 个答案:

答案 0 :(得分:1)

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

确保使用

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

isAdded() && !isDetached()