是否有可能破坏Dagger 2图形或清除它分配的所有内存?

时间:2016-03-14 16:15:06

标签: android dagger-2

我用这样的方法构建我的AppComponent:

public void buildObjectGraph() {
        component = DaggerMyAppComponent.builder()
                .myAppModule(new myAppModule(this))
                .apiModule(new ApiModule())
                .dataModule(new DataModule())
                .utilsModule(new UtilsModule())
                .backendModule(new BackendModule())
                .build();
        component.inject(this);
}

如果我第二次调用方法,它将创建另一个带有新对象(单例)实例的图形,但之前创建的图形一直存在,直到系统收集垃圾。取决于在其中创建的对象类型 - 可能需要一些时间,因为可能存在一些异步操作,api调用以及其他不再需要但仍需要完成的内容。

我知道构建许多图表听起来很荒谬,但我只是在测试中使用它。

我正在寻找的是以某种方式销毁在第一次调用buildObjectGraph()之后创建的所有对象。我可以用它们引用AppComponent。

甚至可能吗?

1 个答案:

答案 0 :(得分:0)

您无法在Java中显式销毁对象。您可以将垃圾收集器提示为垃圾收集(System.gc()),但根本无法保证。