在 customView 中使用 viewBinding 时避免内存问题
Avoid memory issue while using viewBinding in customView
基于official documentation我们在fragments中使用ViewBinding时,我们应该在fragment的onDestroyView
中设置binding为null:
private var _binding:MainFragmentBinding?=null
private val binding get()=_binding!!
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
自定义视图呢?我们是否需要在 onDetachFromWindow
或任何其他函数中将绑定设置为 null?
没有。放在 val
.
中就好了
片段的问题在于片段及其视图具有不同的生命周期,因此保持 onDestroyView()
和 onDestroy()
之间的片段绑定会占用不必要的内存。
在自定义视图中,它与存储在 class 属性 中的任何绑定具有相同的生命周期。
基于official documentation我们在fragments中使用ViewBinding时,我们应该在fragment的onDestroyView
中设置binding为null:
private var _binding:MainFragmentBinding?=null
private val binding get()=_binding!!
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
自定义视图呢?我们是否需要在 onDetachFromWindow
或任何其他函数中将绑定设置为 null?
没有。放在 val
.
片段的问题在于片段及其视图具有不同的生命周期,因此保持 onDestroyView()
和 onDestroy()
之间的片段绑定会占用不必要的内存。
在自定义视图中,它与存储在 class 属性 中的任何绑定具有相同的生命周期。