Я использую Apollo в проекте, который использует Dagger 2
в качестве структуры DI. У меня Dagger 2
впрыск ConnectionPool
. connectionPool.evictAll()
должен вызываться в конце программы, в противном случае программа будет зависать в течение определенного времени (обычно 60 секунд, что слишком долго).
Наивный способ сделать это - внедрить объект в некоторый класс Cleaner
и вызвать метод. Однако в некотором пути кода ConnectionPool
вообще не создается. Создав класс Cleaner
и создав его экземпляр, экземпляр 1011 * всегда будет создан. Это несколько расточительно.
Могу ли я зарегистрировать в Dagger 2 какой-нибудь метод очистки, который вызывается только тогда, когда создается экземпляр объекта, и не вызывается, если нет? Или, в качестве альтернативы, я могу сказать, была ли создана какая-то зависимость или нет?