Hilt 实例化的 defaultDispatche 在哪里?
Where is the defaultDispatche instanced by Hilt?
代码A来自官方样本的末尾分支project。
项目使用Hilt实现依赖注入。
我搜索了整个项目,只找到代码annotation class DefaultDispatcher
,但我不明白代码的意思。
Hilt 实例化的 defaultDispatche 在哪里?
代码A
@HiltViewModel
class MainViewModel @Inject constructor(
private val destinationsRepository: DestinationsRepository,
@DefaultDispatcher private val defaultDispatcher: CoroutineDispatcher
) : ViewModel() {
...
}
@OptIn(ExperimentalMaterialApi::class)
@Composable
fun CraneHomeContent(
onExploreItemClicked: OnExploreItemClicked,
openDrawer: () -> Unit,
modifier: Modifier = Modifier,
viewModel: MainViewModel = viewModel(),
) {
...
}
@Retention(AnnotationRetention.BINARY)
@Qualifier
annotation class DefaultDispatcher
你应该有一个像这样声明的模块
@Module
object DispatcherModule {
@DefaultDispatcher
@Provides
fun providesDefaultDispatcher(): CoroutineDispatcher = Dispatchers.Default
}
现在创建这个 class 以便将 @DefaultDispatcher
用作注释
@Retention(AnnotationRetention.BINARY)
@Qualifier
annotation class DefaultDispatcher
更多详情,请访问here
在你的示例项目here中,你分享的就是这样写的。
这意味着 @DefaultDispatcher
将用作注释,其中值将由 DispatcherModule
提供
代码A来自官方样本的末尾分支project。
项目使用Hilt实现依赖注入。
我搜索了整个项目,只找到代码annotation class DefaultDispatcher
,但我不明白代码的意思。
Hilt 实例化的 defaultDispatche 在哪里?
代码A
@HiltViewModel
class MainViewModel @Inject constructor(
private val destinationsRepository: DestinationsRepository,
@DefaultDispatcher private val defaultDispatcher: CoroutineDispatcher
) : ViewModel() {
...
}
@OptIn(ExperimentalMaterialApi::class)
@Composable
fun CraneHomeContent(
onExploreItemClicked: OnExploreItemClicked,
openDrawer: () -> Unit,
modifier: Modifier = Modifier,
viewModel: MainViewModel = viewModel(),
) {
...
}
@Retention(AnnotationRetention.BINARY)
@Qualifier
annotation class DefaultDispatcher
你应该有一个像这样声明的模块
@Module
object DispatcherModule {
@DefaultDispatcher
@Provides
fun providesDefaultDispatcher(): CoroutineDispatcher = Dispatchers.Default
}
现在创建这个 class 以便将 @DefaultDispatcher
用作注释
@Retention(AnnotationRetention.BINARY)
@Qualifier
annotation class DefaultDispatcher
更多详情,请访问here
在你的示例项目here中,你分享的就是这样写的。
这意味着 @DefaultDispatcher
将用作注释,其中值将由 DispatcherModule