Android库中的依赖项注入

zvokhttg  于 2022-12-28  发布在  Android
关注(0)|答案(1)|浏览(126)

我正在开发Android库,其他应用程序将使用它。这个库不会有任何活动,但它会有片段,虚拟机,域等。到目前为止,我的应用程序我与Dagger2,我不知道它将如何在库中工作。有人有经验吗?或者也许有人可以推荐其他库使用的情况下(koin?)
谢啦,谢啦

y1aodyip

y1aodyip1#

Koin要简单得多,你也可以去掉注解和它们的处理,假设我们有一个类名Helper,需要从不同的位置访问。
实施步骤:
a)在build.gradle(app)中添加依赖项。

implementation "io.insert-koin:koin-android:3.3.0"

B)创建一个类,使用KoinComponent对其进行扩展

class DIComponent : KoinComponent {

    // Utils
    val helper by inject<Helper>()
}

c)通过在App类中传递模块来初始化Koin

class MainApplication : Application(){
    override fun onCreate() {
        super.onCreate()
        
        startKoin{
            androidLogger()
            androidContext(this@MainApplication)
            modules(appModule)
        }
    }

    private val appModule = module {
        single { Helper() }
    }
}

d)现在,要在项目(活动/片段)中使用这个类

class MainActivity : AppCompatActivity() {

    private val diComponent = DIComponent()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        diComponent.helper.yourFunction()
    }
}

相关问题