geo*_*eci 1 android android-lifecycle android-fragments android-memory butterknife
我为我的按钮设置了监听器:
View onCreateView(...) {
...
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//some work
}
});
...
}
Run Code Online (Sandbox Code Playgroud)
如果我使用ButterKnife,建议打电话给ButterKnife.unbind(this)在onDestroyView(){..}.我是否需要删除侦听器以避免内存泄漏?
void onDestroyView() {
...
btn.setOnClickListener(null)
}
Run Code Online (Sandbox Code Playgroud)
这取决于...
您是否有纵向和横向的不同布局,并且您已将其配置为在旋转时仅视图被销毁?
如果是,则为YES以防止在已使用的活动/片段上引用未使用的视图(这可能会阻止它成为GC)
如果当你旋转视图和片段/活动被破坏,那么NO你不需要做,GC将照顾它.
存在这种差异的原因是Android在其GC上使用Mark-Sweep算法,这将防止收集2个未使用的对象(循环引用)的情况......但不是使用对象的情况引用了一个未使用的引用.
关于此的一些有用的问答:
| 归档时间: |
|
| 查看次数: |
1770 次 |
| 最近记录: |