我看到,如果一个人在活动中实例化一个匕首2组件,那么它后来在归零onDestroy()
方法一样看到这里。
public class MyActivity {
private MyActivityComponent component;
//...
public void onCreate() {
component = Dagger_MyActivityComponent.builder()
.myApplicationComponent(App.getComponent())
.build()
.inject(this);
//...
}
public void onDestroy() {
component = null;
}
}
如果我不这样做null
,会发生什么,会发生什么?
旁注:在注释中,我发现了有用的提示,为什么有人将其设置null
为令人信服:“我认为这不是必需的,但它定义的范围很明确”。
如果我不将该实例[...]设为空,会发生什么?
没有。之后onDestroy
被调用的活动对象会在某些时候垃圾收集。如果活动被重新创建,它将是一个新对象。您的匕首组件也将与您的活动一起被垃圾收集。我通常不添加null
组件,onDestroy
因为我认为这是不必要的。
如果您保留对活动的静态引用,或者存在其他类型的内存和活动泄漏,则上述情况将不成立。但是,如果您拥有这些null
组件,那么无论您使用哪种组件也不会有太大的不同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句