Dagger2 android инициализировать график на уровне активности - PullRequest
0 голосов
/ 13 февраля 2020

Я создаю библиотеку для своего приложения, и в этой библиотеке я хочу использовать dagger2, так как может быть только один класс приложения, поэтому у меня нет класса приложения в моей библиотеке, так что мне пришла в голову очевидная вещь должен был инициализировать кинжал на уровне активности, но я также хочу использовать кинжал android. Это то, чего я добился до сих пор, я инициализировал кинжал, но не смог использовать кинжал android.

Singleton
@Component(modules = [NetworkModule::class,
    MyModule::class], dependencies = [Dependency::class])
internal interface ActivityComponent {

 fun inject(activity: MyActivity)

}

Мой класс инжекторов

internal class Injector {

    companion object {
        private var deps: Dependency? = null

        fun inject(activity: MyActivity) {
            component = ActivityComponent
                    .builder()
                    .dependency(deps)
                    .build()
            component.inject(activity)
        }

        fun setDependency(dependency: Dependency) {
            this.deps = dependency
        }


    }
}

MyActivity.class

class MyActivity:AppCompatActivity{

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Injector.inject(this)
}

}

Это отлично работает, но как использовать кинжал android? Потому что для использования кинжала android вам нужно инициализировать DaggerAppComponent в классе приложения, а у меня его нет.

...