Компонент навигации: получить результат действия - PullRequest
1 голос
/ 25 марта 2019

Я использую NavController для запуска действия - у которого есть свой собственный график навигации - для потока входа / регистрации.
Теперь я хотел бы получить результат LoginActivity (успех, неудача)внутри MainActiviy для обновления пользовательского интерфейса.

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

Можно ли справиться с этой ситуацией с помощью компонента навигации или мне нужно использовать что-то вроде startActivityForResult(LoginActivity...), чтобы получить результат от LoginActivity?

Или есть способ получше?Я думаю, что возможным решением могло бы быть использование одного и того же экземпляра viewModel между Activity, но я не совсем уверен, возможно ли это.: - /

1 Ответ

0 голосов
/ 25 марта 2019

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