Можем ли мы добавить несколько методов ViewModel.observer () в одном действии - PullRequest
0 голосов
/ 22 мая 2018

У меня есть действие, которое выполняет несколько фоновых задач, например:

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 Ответ

0 голосов
/ 22 мая 2018

Я думаю, Вам не следует!

Вам не нужно отдельно наблюдать за этими изменениями.

Вы можете сделать это:

  • make ViewState Класс модели данных, который содержит все эти данные (токен jwt, другие логические значения и все)

  • наблюдение ViewModel на основе этой модели из действия.

  • В ViewModel вы можете просто изменить / обновить эти значения модели ViewState, используя LiveData.postValue ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...