在内存方面,我正在尝试针对我正在处理的Android项目优化代码。
我正在寻找一种减少累积垃圾的方法,我的主要问题是,如果仅在特定方法(初始化或其他方法)中使用它们,是否值得在类中注入(通过匕首)变量?目的)还是只应在受尊重的方法中声明它们,否则将在执行此方法后增加垃圾收集?
F.i。是否存在以下情况:
@Inject
Foo foo;
@Overrides
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DaggerAppComponent.create().inject(this);
}
public void bar() {
foo.bar();
}
而不是下面的那个(假设该对象仅在bar方法中使用)?
@Overrides
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void bar() {
Foo foo = new Foo();
foo.bar();
}
第二种情况不是更有效地利用了内存,使对象准备好进行垃圾收集器了吗?
最后,在任何情况下建议使用System.gc()吗?
谢谢!