Действия в onActivityResult и «Ошибка не может выполнить это действие после onSaveInstanceState»
Реализация приложения, в котором пользователь может войти в систему, имеет следующую ситуацию: Если пользователь вошел в систему, выполните действие, иначе запустите действие входа в систему для результата, и если результатом является Activity.RESULT_OK, выполните действие.
Моя проблема в том, что действие для показа состоит в том, чтобы показать DialogFragment, но вызывая
DialogFragment newFragment = MyDialogFragment.newInstance(mStackLevel);
newFragment.show(ft, "dialog")
в обратном вызове onActivityResult выдается исключение:
Caused by: java.lang.IllegalStateException:
Can not perform this action after onSaveInstanceState
Так как я могу решить это? Я думаю поднять там флаг и показать диалог в onResume, но я вижу это решение немного грязным
Изменить: Добавлено больше кода (я следую этому примеру для отображенияDialogFragment
Когда действие запрашивается пользователем:
...
if (!user.isLogged()){
startActivityForResult(new Intent(cnt, Login.class), REQUEST_LOGIN_FOR_COMMENT);
}
В том же фрагменте
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_LOGIN_FOR_COMMENT && resultCode == Activity.RESULT_OK) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
DialogFragment newFragment = MyDialogFragment.newInstance();
newFragment.show(ft, "dialog")
}
}
И если пользователь входит в систему, логин звонит;
setResult(Activity.RESULT_OK);
finish();