1

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

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, )为每种方法重复上述行,或者还有其他方法可以实现这一点。

4

1 回答 1

1

我想,你不应该!

您不需要单独观察这些变化。

你可以这样做:

  • 制作包含所有这些数据(jwt 令牌、其他布尔值和所有)的 ViewState Data 模型类

  • 从活动中观察基于此模型的 ViewModel。

  • 在 ViewModel 中,您也可以使用 LiveData.postValue() 更改/更新这些 ViewState 模型值。

于 2018-05-22T09:51:43.643 回答