Проблема по мне заключается в том, что вы пытаетесь вызвать диалог сразу после того, как активность завершается, поэтому, согласно мне, вы можете дать некоторую задержку с помощью Handler, и вы будете решены, например:
Handler handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
dialog.show();
//or
dialog.dismiss();
}
},100);