发生问题的视图中有一个按钮和一个tabhost。 按钮的onclick侦听器更改当前选项卡中的某些文本。 问题是当我改变方向(端口到陆地或陆地到港口)时,按钮的onclicklistener以某种方式被调用/撇去并且当前选项卡中的文本发生变化。为什么会发生这种情况?解决方案是什么?
myActivity extends Activity{
onCreate(bundle){
..
..
add(button1);
button1.onClickListner(new OnClickListener(){
..
someAlertDialog.show(); //line xxx
});
}
}
它实际上没有显示任何警告对话框(它不应该这样做)但是说错误日志中有@line xxx泄漏。 整个日志即将推出。
编辑:我现在无法获取错误日志,但在方向更改后仍然会发生奇怪的事情。
答案 0 :(得分:0)
默认情况下,方向更改会导致当前活动实例被销毁,然后重新创建并传递前一个实例的状态。如果发生这种情况时屏幕上出现对话框,则会泄漏显示它的窗口。
由于您在调用Activity#showDialog
时未使用onDestroy
来管理对话框,因此您必须手动执行此操作。因此,您必须覆盖Activity#onDestroy
,并在显示时调用Dialog#dismiss
。