Dagger Hilt - @ApplicationContext 和 @ActivityContext 有什么意义?

Dagger Hilt - What’s the point of @ApplicationContext and @ActivityContext?

关于 Hilt 中的 @ApplicationContext 和 @ActivityContext,我知道它们有助于解决请求上下文时的歧义……但为什么不直接请求 Application 或 Activity?

这取决于你需要什么,当你只需要一个上下文时(调用上下文中的方法class),然后注入上下文。如果你真的需要一个 Activity,你可以将它注入你的 class.

但是当你注入一些 class 时,这意味着你的 class 依赖于它并且它们是耦合的。这是软件设计中的不良做法。当您将 activity 注入 class 时,这意味着您的 class 仅适用于 activity。如果您注入上下文,您的 class 可以与任何实现上下文 class

的子class一起工作