android 如何使用Koin注入contentResolver

92vpleto  于 2023-03-24  发布在  Android
关注(0)|答案(2)|浏览(143)

我试图在我的数据源类中注入一个带有koin的contentProvider,但是我找不到任何方法可以做到这一点。
这是我的数据源

class MyDataSource(private val application: Application, private val contentProvider: ContentResolver) : MyRepository {...}

我的koin模

single<MyRepository> {
        MyDataSource(get(), get())
    }

我得到这个错误:
错误代码:找不到'android.content.ContentResolver'的定义。请检查您的模块定义。

vbkedwbf

vbkedwbf1#

告诉Koin如何获取ContentResolver。假设您在自定义的Application(比如MyApplication)类中初始化模块:

private val module = module {

    single { this@MyApplication.contentResolver } // tell Koin this is your ContentResolver

    single<MyRepository> {
        MyDataSource(get(), get()) // now Koin knows how to get the content resolver here
    }
}
svgewumm

svgewumm2#

val module = module {
  // ...

  single<ContentResolver> { androidContext().contentResolver }

  single<MyRepository> {
        MyDataSource(get(), get())
    }
  // ...
}

相关问题