Можем ли мы добавить несколько методов ViewModel.observer() в одном действии
У меня есть действие, которое выполняет несколько фоновых задач, например:
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, )
для каждого метода, или есть какой-то другой способ достижения этого.
1 ответ
Я думаю, вы не должны!
Вам не нужно наблюдать за этими изменениями отдельно.
Вы можете сделать это:
make ViewState Класс модели данных, который содержит все эти данные (токен jwt, другие логические значения и все)
наблюдать ViewModel на основе этой модели из деятельности.
В ViewModel вы можете просто изменить / обновить эти значения модели ViewState, используя LiveData.postValue().