gpt4 book ai didi

Android View Binding - Fragment 生命周期中的清除绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 01:09:37 24 4
gpt4 key购买 nike

为什么清除 binding 很重要在 onDestroyView实现时Android View Binding在一个 fragment 中?
如文档所示,Use view binding in fragments ,以及 Android 架构组件 sample , binding始于 onCreateView ,并在 onDestroyView 中清除.
与启动 binding 相比,实现它有什么好处?没有在 onDestroyView 中清除它?没有显式清除实例变量 binding ,它应该在 Fragment 被销毁时清除。

private var _binding: ResultProfileBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = ResultProfileBinding.inflate(inflater, container, false)
val view = binding.root
return view
}

override fun onDestroyView() {
super.onDestroyView()
_binding = null
}

最佳答案

当 Fragment 实例本身仍在内存中时,Fragment 可能会多次创建和销毁其 View 。如果您不清除 View 引用,那么您将在 onDestroyView() 之间的时间跨度内“泄漏”这些 View 。和 onCreateView() .但它们并没有永久泄露,所以也许这是错误的术语。
There are some who say这些观点是否暂时泄露也没关系。我对生命周期的详细信息了解得不够多,无法知道它是否严格重要。我希望有时 View 被拆除的原因是Android试图在它们不在屏幕时节省内存,所以如果你卡在它们上面,你就是在颠覆它。

关于Android View Binding - Fragment 生命周期中的清除绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65295104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com