导航组件:获取活动结果

时间:2019-03-25 12:56:56

标签: android android-activity onactivityresult android-architecture-navigation

我正在使用NavController来启动用于登录/注册流程的活动-该活动具有自己的导航图。
现在,我想在LoginActivity中包含MainActiviy(成功,失败)的结果来更新UI。

MainActvity (start)-> LoginActivity
MainActvity <-(result) LoginActivity end

是否可以通过导航组件来处理这种情况,还是必须使用类似startActivityForResult(LoginActivity...)的东西来获取 LoginActivity的结果?

还是有更好的方法?我认为可能的解决方案可能是在Activity之间使用相同的viewModel实例,但不确定是否可行。 :-/

1 个答案:

答案 0 :(得分:0)

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();