我在使用Dagger 2
作为DI框架的项目中使用Apollo。我有Dagger 2
注入了ConnectionPool
。 connectionPool.evictAll()
必须在程序结束时被调用,否则,程序将挂起一定的时间(通常为60秒,这太长了)。
这样做的天真方法是将对象注入到某个Cleaner
类中并调用该方法。但是,在某些代码路径中,ConnectionPool
根本没有实例化。通过创建Cleaner
类并将其实例化,ConnectionPool
将始终被实例化。这有点浪费。
在Dagger 2中,我可以注册一些仅在实例化对象时调用的清理方法吗?或者,我可以说是否实例化了某些依赖关系?