Akcje w onActivityResult i „Błąd nie może wykonać tej akcji po onSaveInstanceState”

Wdrożenie aplikacji, w której użytkownik może się zalogować, ma następującą sytuację: Jeśli użytkownik jest zalogowany, wykonaj czynność, w przeciwnym razie uruchom działanie logowania dla wyniku, a jeśli wynikiem jest Activity.RESULT_OK, wykonaj czynność.

Mój problem polega na tym, że celem perfomacji jest pokazanie Dialogu, ale wywołanie

DialogFragment newFragment = MyDialogFragment.newInstance(mStackLevel);
newFragment.show(ft, "dialog")

w wywołaniu zwrotnym onActivityResult zgłasza wyjątek:

Caused by: java.lang.IllegalStateException:  
Can not perform this action after onSaveInstanceState

Jak mogę to rozwiązać? Zastanawiam się nad podniesieniem flagi i wyświetleniem okna dialogowego onResume, ale widzę, że to rozwiązanie jest trochę brudne

Edytuj: Dodano więcej kodu (podążam za tym przykładem, aby pokazaćDialogFragment

Gdy użytkownik zażąda akcji:

... 
if (!user.isLogged()){
 startActivityForResult(new Intent(cnt, Login.class), REQUEST_LOGIN_FOR_COMMENT);
}

W tym samym fragmencie

@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")
    }
}

A jeśli użytkownik zaloguje się w wywołaniach logowania;

setResult(Activity.RESULT_OK);
finish();

questionAnswers(7)

yourAnswerToTheQuestion