资源清理在Dagger 2中

时间:2019-04-29 01:25:56

标签: dependency-injection dagger-2 apollo-client

我在使用Dagger 2作为DI框架的项目中使用Apollo。我有Dagger 2注入了ConnectionPoolconnectionPool.evictAll()必须在程序结束时被调用,否则,程序将挂起一定的时间(通常为60秒,这太长了)。

这样做的天真方法是将对象注入到某个Cleaner类中并调用该方法。但是,在某些代码路径中,ConnectionPool根本没有实例化。通过创建Cleaner类并将其实例化,ConnectionPool将始终被实例化。这有点浪费。

在Dagger 2中,我可以注册一些仅在实例化对象时调用的清理方法吗?或者,我可以说是否实例化了某些依赖关系?

0 个答案:

没有答案