Android:对话框主题活动不可见

时间:2012-04-01 11:26:11

标签: android android-activity dialog themes restart

我有一项活动,在启动时,需要检查用户是否经过身份验证。如果没有,我需要显示一个接口进行身份验证。我使用另一个具有对话框主题的活动执行此操作,然后在onResume()中使用标志NO_HISTORY和EXCLUDE_FROM_RECENTS启动它。

第一次启动应用程序时,一切正常。但是我有一个功能,如果用户不在活动中,则会在一段时间后重置登录。当我测试这个时,我开始申请,输入密码,然后回到家。然后,当我再次进入应用程序时,背景会变暗,就好像对话框会显示一样,但事实并非如此。

此时,如果按下后退按钮,背景活动中的变暗会消失一秒钟,最后会出现对话框。

我使用logcat来调查这个案例,并且正确调用了活动生命周期函数:

//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

使用SINGLE_TOP标志不做任何更改。但是,如果我从对话框活动中删除对话框主题,则会在重新启动后显示它。

到目前为止,我不想使用Dialog而不是Activity,因为我认为它们有时会出现问题而且封装较少,而且这部分必须非常安全。你或许可以说服我..

提前谢谢!

0 个答案:

没有答案