Scope в Dagger определяет время жизни объектов в графе зависимостей. Объекты, помеченные одним и тем же Scope, будут созданы один раз внутри этого Scope и использоваться повторно на протяжении всего его существования.
Примеры встроенных Scope: @Singleton, @ActivityScope (часто используется в примерах, но не является частью стандартной библиотеки Dagger).
Для создания кастомного Scope нужно объявить аннотацию с мета-аннотацией @Scope:
java
Затем этот Scope применяется к компоненту и модулям/провайдерам, чьи объекты должны иметь это время жизни:
java
java
Компонент с кастомным Scope создает синглтоны в рамках своего собственного времени жизни. Пока существует экземпляр этого компонента, объекты, помеченные его Scope, будут использоваться повторно. При уничтожении компонента и создании нового, новые экземпляры скоупированных объектов будут созданы снова.