保留片段,ButterKnife内存是否安全?

时间:2016-03-09 02:10:33

标签: android butterknife

public class GenericRetainedFragment extends GenericFragment {

    @Bind(R.id.some_button)
    Button button;

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        setRetainInstance(true);
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        ButterKnife.bind(this, view);
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        ButterKnife.unbind(this);
    }
}

由于我不知道ButterKnife如何处理unbind方法,更改配置更改,会发生内存泄漏吗?

使用ButterKnife和Retained Fragment这是一个好习惯吗?

1 个答案:

答案 0 :(得分:1)

我没有看到保留片段会有任何问题,因为片段的实例应该始终处于“活动状态”,直到它被删除。它不会进入后台堆栈,因此会将其视图销毁并可能重新创建(这是Fragments的正常情况,需要使用ButterKnife的特殊模式)。保留片段的一个实例只有一组视图,除非你做了一些改变。