小编wan*_*adu的帖子

Hilt:ApplicationComponent 中提供的对象何时被销毁?

@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 中提供它。

  1. 当 Activity 被销毁时,服务对象也会被销毁吗?
  2. 或者只有当应用程序被销毁时它才会被垃圾收集?

android dagger-hilt

6
推荐指数
0
解决办法
565
查看次数

如何将挂起函数作为显式参数传递给协程构建器?

我正在研究将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)

我错过了什么?

anonymous-function kotlin kotlin-coroutines

5
推荐指数
1
解决办法
910
查看次数