kotlin - android - viewModelScope в одноэлементной модели представления - PullRequest
0 голосов
/ 20 марта 2020

Мое приложение использует шаблон MVVM и хочет использовать viewmodelscope для сопрограммы, и теперь я сталкиваюсь с некоторой проблемой, связанной с viewmodelscope

в приложениях, есть два фрагмента, и у каждого фрагмента есть модель представления. от первого фрагмента перейдите к второму фрагменту, и во втором фрагменте пользователь нажмет API. если ответ ложный, пользователь снова вернется к первому фрагменту и должен исправить свой ввод. и затем пользователь может снова перейти к фрагменту два и снова нажать API.

проблема заключается во второй попытке, приложения не могут подключиться к API, потому что сопрограмма уже отменена в состоянии ondestroy в viewmodel на первая попытка (автоматически отменяется, так как это поведение самого viewmodelscope CMIIW). и так как я делаю все синглтоны viewmodel, то я предполагаю, что во второй попытке отмененный viewmodelscope вызывается снова и не может запустить сопрограмму (потому что она уже отменена с первой попытки).

Мой вопрос заключается в том, продолжаю ли я использовать Singleton для viewmodel, есть ли другой способ сбросить viewmodelscope во второй попытке, чтобы он мог снова работать, чтобы поразить API?

1 Ответ

0 голосов
/ 20 марта 2020
  1. Я предлагаю вам использовать одну ViewModel для вашей Деятельности, тогда все фрагменты в этой Деятельности поделятся ею, и именно поэтому Google изобрел ViewModel.
  2. Эта viewModel будет следовать жизненному циклу Activity, и вам не нужно делать его одиночным, просто получите его в Activity.onCreate ().
...