Android: Dialog themed activity not visible

Posted by Vincent on Stack Overflow See other posts from Stack Overflow or by Vincent
Published on 2012-04-01T11:26:11Z Indexed on 2012/04/01 11:29 UTC
Read the original article Hit count: 542

Filed under:
|
|
|

I have an activity which, when started, needs to check if the user is authenticated. If not, I need to display an interface to authenticate. I do this with another activity, which has a dialog theme, and I start it in onResume() with flags NO_HISTORY and EXCLUDE_FROM_RECENTS.

Everything works fine when starting the application for the first time. But I have a feature that resets login after some time, if the user is not in an activity. When I test this, I start the applicatio, enter the password, then move back to home. Then when I enter the application again, the background darkens as if the dialog would show, but it doesn't.

At this point, if I press the back button, the darkening from the background activity disappears for a second, then the dialog finally appears.

I used logcat to investigate the case, and the activity lifecycle functions get called properly:

//For the first start:

onCreate background activity
onStart background activity
onResume background activity

onPause background activity

onCreate dialog
onStart dialog
onResume dialog

//Enter password

onPause dialog
onResume background activity
onStop dialog
onDestroy dialog

//navigating to homescreen

onPause background activity
onStop background activity

//starting again

onRestart background activity
onStart background activity
onResume background activity

onPause background activity

onCreate dialog
onStart dialog
onResume dialog

//no dialog shown, only darkened background activity recieving no input
//pressing back button

onPause dialog
onResume background activity
onPause background activity

onCreate NEW dialog
onStart NEW dialog
onResume NEW dialog

onStop OLD dialog
onDestroy OLD dialog

//now the dialog is properly shown
//entering password

onPause NEW dialog
onResume background activity
onStop NEW dialog
onDestroy NEW dialog

Using the SINGLE_TOP flag makes no change. However, if I remove the dialog theme from the dialog activity, it IS shown after the restart.

So far I didn't want to use a Dialog instead of an Activity, because I consider them problematic sometimes and less encapsulated and this part has to be quite secure. You may be able to convince me though..

Thank you in advance!

© Stack Overflow or respective owner

Related posts about android

Related posts about activity