Android 如何在ViewModel中启动活动?
我正在使用MVVM开发应用程序,但我无法从AndroidViewModel启动活动 在layout中,我引用了AndroidViewModel方法,在该方法中,我有以下代码:Android 如何在ViewModel中启动活动?,android,android-activity,android-mvvm,Android,Android Activity,Android Mvvm,我正在使用MVVM开发应用程序,但我无法从AndroidViewModel启动活动 在layout中,我引用了AndroidViewModel方法,在该方法中,我有以下代码: public void startRegister(){ Intent myIntent = new Intent(getApplication().getBaseContext(), RegisterActivity.class); getApplication().getBaseContext().st
public void startRegister(){
Intent myIntent = new Intent(getApplication().getBaseContext(), RegisterActivity.class);
getApplication().getBaseContext().startActivity(myIntent);
}
但是这段代码崩溃了,我如何从AndroidViewModel打开另一个活动?这是最好的方法吗
出现的错误如下:
从活动上下文外部调用startActivity需要
标志\u活动\u新建\u任务标志。这真的是你想要的吗
谢谢您不应该从ViewModel启动活动,在MVVM中,ViewModel不应该知道有关视图的任何信息 一种办法是: 具有在视图中启动活动的方法另一个活动 通过liveData在ViewModel和视图之间进行通信 在liveData更新时调用start activity方法。
您不应该从ViewModel启动活动,在MVVM中,ViewModel不应该知道有关视图的任何信息 一种办法是: 具有在视图中启动活动的方法另一个活动 通过liveData在ViewModel和视图之间进行通信 在liveData更新时调用start activity方法。
如果代码崩溃,将有错误日志,将其与您的问题一起发布。如果代码崩溃,将有错误日志,将其与您的问题一起发布。这是我的第一个选项,但我有以下代码:public void startRegister{register.setValuetrue;register.setValuefalse;}当此布尔值更改时,打开代码,但我认为这也不是一个好的方法,也许你有一个更好的想法,怎么做?这是我的第一个选择,但我有以下代码:public void startRegister{register.setValuetrue;register.setValuefalse;}当这个布尔值改变时,打开代码,但我认为这也不是一个好的方法,也许你有个更好的主意,怎么做?