我试图理解为什么ActivityRetainedScoped在希尔特引入 DI。在我看来,范围与ViewModelScoped应该做的事情是相同的。我的印象是作用域是这样工作的:
AppScope (singleton) > ViewModelScope > ActivityScope > ViewScope > ...
但这张图有点暗示 ViewModel 和 Activity 范围是......兄弟姐妹?
根据文档:
“ActivityRetainedComponent 存在于配置更改中,因此它在第一个 Activity#onCreate() 处创建,并在最后一个 Activity#onDestroy() 处销毁。”
嗯,视图模型也是如此,不是吗?我非常确定视图模型可以在配置更改中幸存下来(如果首先将它们放在首位,这就是重点)
什么是ActivityRetainedScoped?它与 VM 范围有何不同?为什么谷歌喜欢将概念上应该简单的事情复杂化
https://developer.android.com/training/dependency-injection/hilt-android