导航组件:获取活动结果

问题描述 投票:1回答:1

我正在使用NavController开始一个活动 - 它有自己的导航图 - 用于登录/注册流程。 现在我想在LoginActivity中获得MainActiviy(成功,失败)的结果来更新UI。

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

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

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

android android-activity onactivityresult android-architecture-navigation
1个回答
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();
© www.soinside.com 2019 - 2024. All rights reserved.