根据这张图片,ViewModel的生命周期与Activity实例非常相似,那为什么不直接使用一个Activity实例变量呢? ViewModel更好是因为自动调用了 onClear 方法吗?还是因为它是可观测的(如果是这样,为什么不只是使用可观测的普通成员变量)?
也许图形不够清晰,但打印的生命周期钩子是来自活动,viewmodel保持不变,直到活动完全结束。因此,在旋转后,例如在活动实例被销毁时,活动实例中的变量将被释放,同时创建一个新的活动实例。但如果它在ViewModel中,则不会发生这种情况,因为两者都使用相同的实例。
onDestroy
之后会为onCreate
调用创建一个新实例?Android/Jetpack 如何知道将成员变量传输到哪个新实例中?(因为实例化不清楚而彻底困惑;抱歉) - user2297550