我正在使用NavController
开始一个活动 - 它有自己的导航图 - 用于登录/注册流程。
现在我想在LoginActivity
中获得MainActiviy
(成功,失败)的结果来更新UI。
MainActvity (start)-> LoginActivity
MainActvity <-(result) LoginActivity end
是否可以使用导航组件处理这种情况,或者我是否必须使用startActivityForResult(LoginActivity...)
之类的东西来获取LoginActivity
的结果?
或者,还有更好的方法?我认为一个可能的解决方案可能是在活动之间使用相同的viewModel实例,但不确定这是否可行。 : - /
startActivityForResult非常适合这些用例。如果登录成功,那么您发回这样的数据,通知您的用例中的MainActivity登录成功。
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();
如果未成功登录,则:
Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();