Я работаю над очень плохим проектом Android.Все его классы Singletons следуют неправильному шаблону.Итак, я пытаюсь сделать его лучше.
Этот проект содержит только модуль app
(поэтому это не многомодульный проект).
Это то, что я добавил:
@Singleton
@Component(modules = [AppModule::class])
interface AppComponent {
@Component.Factory
interface Factory {
fun create(@BindsInstance applicationContext: Context): AppComponent
}
}
@Module
object AppModule {
@Singleton
@Provides
@JvmStatic
fun provideAppContext(context: Context) = context
@Singleton
@Provides
@JvmStatic
fun provideAppDataManager(ctx: Context) = AppDataManager.setupInstance(ctx)
}
class SiteFinderApplication : Application() {
val component: AppComponent by lazy {
DaggerAppComponent
.factory()
.create(this)
}
override fun onCreate() {
super.onCreate()
}
}
Итак, исходя из моего понимания, AppDataManager
объект создается, когда пользователь запускает приложение.Если мое предположение верно, то мой вопрос заключается в том, как получить объект AppDataManager
из компонента Application в других моих действиях?