我有一个执行多个后台任务的活动,例如:getJWTToken(), sendFCMTokenToServer(), isPromoAvailable(), isForcedUpgradeRequired(), fetchNewsFromServer(), sendUserLatLngToServer()
这些都是网络呼叫,需要一些时间。
这是我为1种方法所做的。
HomeViewModel homeViewModel = ViewModelProviders.of(this).get(HomeViewModel.class);
homeViewModel.sendFCMTokenToServer().observe(this, isFCMSendToServer -> {
Toast.makeText(this, "Home FCM Observer called", Toast.LENGTH_SHORT).show();
});
现在我的问题是我是否需要为每种方法重复上述行
homeViewModel.observer(this, )
,或者有其他方法可以实现这一点。 最佳答案
我认为,您不应该!
您无需分别观察这些更改。
您可以执行以下操作:
制作包含所有这些数据(jwt令牌,其他布尔值和所有数据)的ViewState Data模型类
从活动中基于此模型观察ViewModel。
在ViewModel中,您也可以只使用LiveData.postValue()更改/更新这些ViewState模型值。