2
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是如何工作在解除绑定方法上的,因此配置更改会导致内存泄漏?ButterKnife内存安全保留碎片吗?
这是使用ButterKnife和Retained Fragment的良好做法吗?
当我们调用'ButterKnife.bind(this)'时,ButterKnife是否会清除视图引用?如果是这样,那么活动就会被垃圾收集起来,不是吗? – dandoh
是的,如果一个活动被销毁,那么它的所有组件也应该被销毁,除非你正在做一些事情来阻止它们超出活动的范围。 –