我正在将 Hilt 用于 DI,并且我有这门课。
class ChatCore @Inject constructor()
此类需要注入到 fragment 中,无需标记该片段,@AdroidEntryPoint
因为该片段可以附加到未标记为的活动@AndroidEntryPoint
我怎样才能做到这一点。我尝试使用 EntryPoint,但最终出现错误。
class MyFragment : Fragment() {
lateinit var chatCore: ChatCore
@EntryPoint
@InstallIn(FragmentComponent::class)
interface ChatCoreProviderEntryPoint{
fun chatCore():ChatCore
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val hiltEntryPoint = EntryPointAccessors.fromFragment(this, ChatCoreProviderEntryPoint::class.java)
chatCore = hiltEntryPoint.chatCore()
}
通过将其添加到应用程序容器中来解决它。
@EntryPoint
@InstallIn(ApplicationComponent::class)
interface ChatCoreProviderEntryPoint{
fun chatCore():ChatCore
}
val hiltEntryPoint = EntryPointAccessors.fromApplication(applicationContext,
ChatCoreProviderEntryPoint::class.java)