android 为什么我可以在ViewModelComponent中使用Application作为默认绑定?

ia2d9nvy  于 2023-05-05  发布在  Android
关注(0)|答案(1)|浏览(96)

从本文中,我知道每个Hilt组件都带有一组默认绑定,Hilt可以将这些绑定作为依赖项注入。你可以看到图A。
并且ViewModelComponent只有一个基于上述文章的默认绑定SavedStateHandle
为什么我可以在代码A中使用Application作为ViewModelComponent和Hilt的默认绑定?

@HiltViewModel
class PlaySoundViewModel @Inject constructor(
   private val appContext: Application,         // It's Ok, I have tested.
   private val playSound: IPlaySound,
   private val savedStateHandle: SavedStateHandle
): ViewModel(){
   ...
}

图片A

tjrkku2a

tjrkku2a1#

根据此图(https://developer.android.com/training/dependency-injection/hilt-android#component-hierarchy),我们可以访问父组件的绑定,正如您提到的,SingletonComponentApplication作为默认绑定,ViewModel能够访问Application

相关问题