【发布时间】:2019-07-18 13:11:13
【问题描述】:
假设有一个活动“A”。在 onCreate() 方法中的活动“A”中,您正在初始化一个 ViewModel,然后使用像 vmInstance.getBooksFromSource() 这样的视图模型在 onCreate() 内进行网络调用。现在假设我的网络呼叫响应已经到来,同时用户将旋转屏幕并再次触发活动“A”onCreate() 方法,我们将获得相同的旧视图模型实例,但我的vmInstance.getBooksFromSource() 将再次被触发。因此,如果我已经收到响应,现在我想删除不必要的调用,所以不要再次访问服务器。
现在我在活动内部维护一个本地布尔标志(默认情况下其值为 false),如果我从服务器获得响应并将其值保存在 onSavedInstanceState() 上,则启用它。然后在onCreate() 方法中,我正在检查它的值(通过捆绑检查),如果它是假的,那么只有我在进行网络调用。如果数据已经来自viewodel方法vmInstance.getBooksFromSource()
【问题讨论】:
标签: android mvvm android-viewmodel