Android - 如何重新创建Hilt?

3

我的应用允许用户使用多个帐号登录。每次会话,用户的数据都不同。我使用单个 activity。

那么,如何在用户登录后重新创建 Hilt 以重新加载 use case、 repository 和 data source?或者说,使用 Hilt 多账户的最佳实践是什么呢?


这是一个有点奇怪的问题,如果你需要一些依赖于用户的数据,你肯定会在你的存储库中有一个像 getData(User) 这样的方法吧?Hilt 真的与此无关。 - Henry Twist
是的,我知道获取用户数据的方法。我正在使用Hilt与层用例、存储库、数据源,其范围为SingletonComponent。@InstallIn(SingletonComponent::class) abstract class RepositoryModule { @Binds @Singleton abstract fun bindAuthenticationRepository(repository: AuthenticationRepositoryImpl): AuthenticationRepository }``` 因此,我不知道如何处理动态用户以获取数据。 - PhongBM
不,那不是我的意思。我的意思是,如果获取数据取决于用户,则在获取数据时将用户作为参数传递?而不是在注入依赖项时传递? - Henry Twist
是的,我明白你的意思。但在我的应用程序中,每个用户都有特定的数据库文件。我需要在用户登录后连接数据库。 我使用Hilt来获取数据库实例。 - PhongBM
我明白了,嗯,我从未见过这样的事情,但或许有人会有想法。祝你好运! - Henry Twist
感谢 @HenryTwist :D - PhongBM
1个回答

1
你可以寻找适用于Hilt的依赖范围。对于你的情况,只需在AppModule上使用ActivityRetainedComponent。在构造函数类上添加@ActivityRetainedScoped,而不是singleton。
通过这种方式,用户数据在活动创建时创建,在活动销毁时销毁。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接