don't block incoming calls, this is a bad idea!
you can use the Activity_Pause to store your app stat on a public object (maybe map) :
B4X:
Sub Activity_Pause (UserClosed As Boolean)
End Sub
when you return check in Activity_Resume that object and show the dialog if needed. all entered data can also be stored on that map.
B4X:
Sub Activity_Resume
End Sub