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
是的,如果一個活動被銷燬,那麼它的所有組件也應該被銷燬,除非你正在做一些事情來阻止它們超出活動的範圍。 –