如何在ViewModel中启动活动?

时间:2019-02-06 10:19:01

标签: android android-activity android-mvvm

我正在使用MVVM开发应用程序,但无法从AndroidViewModel开始活动。

在布局中,我引用了AndroidViewModel方法,在此方法中,我具有以下代码:

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

但是此代码崩溃了,如何从AndroidViewModel打开另一个活动?这是最好的方法吗?

出现的错误如下:

  

从Activity上下文外部调用startActivity()需要   FLAG_ACTIVITY_NEW_TASK标志。这真的是您想要的吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您不应从ViewModel开始活动,在MVVM中,ViewModel不应了解有关View的任何信息。

一种方法是:

  • 具有在视图中启动活动的方法(另一个活动)
  • 通过liveData在ViewModel和View之间进行通信
  • liveData更新时调用start活动方法。