我有一个允许用户登录的应用程序。用户数据保存在数据库中。 MainActivity 实现了一个接口(interface) OnUserCreationCallback:
class MainActivity implements OnUserCreationCallback {
//Unrelated code
@Override
void setUser(boolean created) {
if(created) {
//Display welcome message
}
}
}
一旦在数据库中创建了用户,setUser()
方法就会触发,用户会收到一条欢迎消息。这按预期工作。我的问题是,在创建用户时可以观察到实现 ViewModel 和 LiveData 有什么真正的好处吗?我说的只是这个特定的操作,而不是多次更改的操作。这是一次性手术。
最佳答案
如果您在 Activity 被销毁后保留回调,这可能会泄漏您的 Activity。例如,如果您在配置更改期间保留您的用户存储库或其他任何东西,它将继续引用回调,即 Activity ,并且它永远不会真正被销毁。
另一方面,LiveData
是生命周期感知型的,并且会根据其注册的生命周期所有者取消订阅,例如当 Activity 被销毁时。
另一个人也发表了非常好的观点。这基本上是 MVP 与 MVVM 的争论。
关于android - 使用 LiveData 而不是常规回调有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61736148/