Ресурсная зачистка в Кинжале 2 - PullRequest
0 голосов
/ 29 апреля 2019

Я использую Apollo в проекте, который использует Dagger 2 в качестве структуры DI. У меня Dagger 2 впрыск ConnectionPool. connectionPool.evictAll() должен вызываться в конце программы, в противном случае программа будет зависать в течение определенного времени (обычно 60 секунд, что слишком долго).

Наивный способ сделать это - внедрить объект в некоторый класс Cleaner и вызвать метод. Однако в некотором пути кода ConnectionPool вообще не создается. Создав класс Cleaner и создав его экземпляр, экземпляр 1011 * всегда будет создан. Это несколько расточительно.

Могу ли я зарегистрировать в Dagger 2 какой-нибудь метод очистки, который вызывается только тогда, когда создается экземпляр объекта, и не вызывается, если нет? Или, в качестве альтернативы, я могу сказать, была ли создана какая-то зависимость или нет?

...