gpt4 book ai didi

android - 如果 Android Hilt 都可以与 SingletonComponent 一起工作,为什么要对 Android Hilt 使用不同的范围

转载 作者:行者123 更新时间:2023-12-05 03:26:14 27 4
gpt4 key购买 nike

要添加 Hilt 模块,您需要执行以下操作:

@Module
@InstallIn(SingletonComponent::class)
abstract class MyModule{
...
}

有不同的范围,例如 ActivityComponent、ViewModelComponent 等,但我不清楚何时需要使用不同于 SingletonComponent 的范围,毕竟这涵盖了所有内容并且始终有效。是否只是遵循封装的良好做法的问题?

最佳答案

这是因为注入(inject)对象的生命周期或范围。例如,如果您设置模块的范围 Fragment,则每次打开该 Fragment 时都会创建该对象的新实例,并且在您的 fragment 被销毁时将有资格被垃圾收集。您将不会在内存中拥有不再需要的对象,有时您可能需要重置其参数的对象的新实例,而不是拥有 Singleton 对象。

关于android - 如果 Android Hilt 都可以与 SingletonComponent 一起工作,为什么要对 Android Hilt 使用不同的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71788420/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com