@Module
@InstallIn(SingletonComponent::class)
object AnalyticsModule {
@Provides
fun provideAnalyticsService(): AnalyticsService {
return AnalyticsServiceImpl()
}
}
@AndroidEntryPoint
class ExampleActivity: AppCompatActivity() {
@Inject lateinit var service: AnalyticsService
}
Run Code Online (Sandbox Code Playgroud)
由于我想在应用程序中的任何位置使用 AnalyticsService,因此我在 SingletonComponent/ApplicationComponent 中提供它。
我正在研究将launch协程代码作为block: suspend CoroutineScope.() -> Unit. 我们通常将代码作为 lambda 传递。但是,我想知道如何将此函数作为显式参数传递给启动函数。
coroutineScope {
launch(block = ::myFunction)
}
suspend fun CoroutineScope.myFunction(): Unit {
// coroutine code
}
Run Code Online (Sandbox Code Playgroud)
它给出以下错误
Type mismatch.
Required:
suspend CoroutineScope.() ? Unit
Found:
KSuspendFunction0<Unit>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?