我在我的应用中遇到了一种奇怪的行为。
我有一个带ListView的Activity。当您单击ListView中的项目时,将显示TimePickerDialog。
如果在关闭对话框后点击主页按钮,然后重新加载应用程序,则会再次自动显示TimePickerDialog。
现在,我不知道为什么会出现这种情况。我在应用程序的不同位置记录了消息,试图确定它是如何被触发但无济于事。
我甚至添加了这一行:
Log.d("TEST", "TEST");
在TimePickerFragment的构造函数中,它没有被触发!然而对话框出现了!
这里发生了什么?
答案 0 :(得分:0)
活动将保存状态。因此它还将保存托管对话框的状态。当你回来时,它会恢复。由于它已经创建,因此不会调用构造函数。据我所知,如果您不让活动管理对话框,则不会发生此行为
答案 1 :(得分:0)
感谢nandeesh的回答,我能够弄清楚如何解决这个问题。
由于我的对话框已被管理,我不得不在对话框实例上调用dismissAllowingStateLoss()方法。
现在就像魅力一样。