Как начать деятельность в ViewModel? - PullRequest
0 голосов
/ 06 февраля 2019

Я использую MVVM для разработки приложения, но не могу запустить деятельность из AndroidViewModel.

В макете у меня есть ссылка на метод AndroidViewModel, и внутри этого метода у меня есть следующий код:

public void startRegister(){
    Intent myIntent = new Intent(getApplication().getBaseContext(), RegisterActivity.class);
    getApplication().getBaseContext().startActivity(myIntent);
}

Но этот код вылетает, как я могу открыть другое действие из AndroidViewModel?Это лучший подход для этого?

Появляется ошибка:

Для вызова startActivity () вне контекста Activity требуется флаг FLAG_ACTIVITY_NEW_TASK.Вы действительно этого хотите?

Спасибо

1 Ответ

0 голосов
/ 06 февраля 2019

Не следует запускать действие из ViewModel, в MVVM ViewModel не должно ничего знать о представлении.

Один из подходов будет следующим:

  • Есть методчтобы запустить действие в вашем представлении (другое действие)
  • Обмен данными между ViewModel и представлением через liveData
  • Вызов метода запуска действий при обновлении liveData.
...