Это хорошая идея, чтобы иметь несколько ViewModel.observe в одной деятельности? - PullRequest
0 голосов
/ 09 октября 2018

У меня есть активность, которую я назвал MainActivity.Для этой деятельности я создал ViewModel, которая называется MainViewModel.В этом упражнении у меня есть 3 сетевых вызова, и я создал для них 3 наблюдателя в MainViewModel.Сначала я вызываю первый запрос, когда этот запрос успешен, я вызываю второй запрос, а когда он также успешен, я вызываю третий запрос.

Мой код выглядит примерно так:

...
private MainViewModel viewModel;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    ...

    viewModel.doRequestOne();

    viewModel.requestOne.observe(this, result -> {
       // check if it is success, then call doRequestTwo()
       viewModel.doRequestTwo();
    });

    viewModel.requestTwo.observe(this, result -> {
       // check if it is success then call doRequestThree()
       viewModel.doRequestThree();
    });;

    viewModel.requestThree.observe(this, result -> {
       // Success
    });

}

Теперь я хочу знать, есть ли лучший способ для такого подхода?Потому что я должен сделать этот сценарий в нескольких действиях

1 Ответ

0 голосов
/ 09 октября 2018

Если вы хотите включить Архитектура ViewModel , лучше иметь все, что касается запросов, сети и данных в моделях представления.Так что вся эта логика из вашего примера должна быть в viewModel .Вы должны просто наблюдать конечный результат, за исключением случаев, когда вы хотите показать в пользовательском интерфейсе также частичные результаты.

...