Android 如果无法使用unbind(),会发生什么情况?

Android 如果无法使用unbind(),会发生什么情况?,android,android-layout,android-view,butterknife,Android,Android Layout,Android View,Butterknife,我有一个使用Butterknife的应用程序,最近我在片段的onDestroyView()中发现了一个片段,我未能调用unbinder.unbind()。我解决了这个问题,但它让我开始思考 这会导致什么样的错误?为什么?我现在没有什么特别的错误,但我想知道以后要注意什么,而且库的网站没有指定这可能导致的问题。假设您有一个,并且您已经使用@BindView初始化了一个视图 发生方向更改,这会导致销毁活动实例,但不会销毁此片段,因为此片段是一个保留片段,这意味着您已初始化的字段仍在那里(不是null

我有一个使用Butterknife的应用程序,最近我在片段的
onDestroyView()
中发现了一个片段,我未能调用
unbinder.unbind()
。我解决了这个问题,但它让我开始思考

这会导致什么样的错误?为什么?我现在没有什么特别的错误,但我想知道以后要注意什么,而且库的网站没有指定这可能导致的问题。

假设您有一个,并且您已经使用
@BindView
初始化了一个视图

发生方向更改,这会导致销毁活动实例,但不会销毁此片段,因为此片段是一个保留片段,这意味着您已初始化的字段仍在那里(不是
null
),并且包含对上一个活动视图的强引用,这会导致活动泄漏

虽然这可能需要一些时间(因为最终您将在
onViewCreated()
中执行另一个
ButterKnife.bind()
,对吗?但谁知道,也许您不会),但最好在不需要资源时尽快释放资源,让GC完成它的工作

不久前我也考虑过这个问题,除此之外,我无法想出另一个非常有必要使用
unbind()
的场景