Ответ
Зависимость с аннотацией @Singleton живет в течение всего жизненного цикла компонента, в котором она объявлена. Обычно это ApplicationComponent (или SingletonComponent в Dagger Hilt), поэтому объект создается один раз и существует до завершения работы приложения.
Пример:
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Singleton
@Provides
fun provideSomeService(): SomeService = SomeServiceImpl()
}
Важно: если компонент пересоздается (например, в тестах), Singleton-зависимость также пересоздается. В Android это актуально только при перезапуске процесса приложения.