我有一个执行多个后台任务的活动,例如:

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模型值。

08-04 22:03