0

我在我的应用程序中遇到了奇怪的行为。

我有一个带有 ListView 的活动。当您单击 ListView 中的某个项目时,会显示一个 TimePickerDialog。

如果我在关闭对话框后点击主页按钮,然后重新加载应用程序,TimePickerDialog 会再次自动显示。

现在,我不知道为什么会发生这种行为。我在应用程序的不同点记录了消息,试图确定它是如何触发的,但无济于事。

我什至添加了这一行:

Log.d("TEST", "TEST");

在 TimePickerFragment 的构造函数中,它没有被解雇!然而对话框出现了!

这里发生了什么?

4

2 回答 2

0

该活动将保存状态。因此它还将保存托管对话框的状态。当你回来时,它会恢复。由于它已经创建,因此不会调用构造函数。据我所知,如果您不让活动管理对话框,则不会发生此行为

于 2012-08-06T06:08:32.590 回答
0

感谢nandeesh的回答,我能够弄清楚如何解决这种行为。

由于我的对话框是托管的,我不得不在我的对话框实例上调用dismissAllowingStateLoss() 方法。

现在就像一个魅力。

于 2012-08-06T06:18:40.593 回答