我有一个AlerDialog,想要做一些清理工作(例如发布MediaPlayer)。所以我添加了一个解雇听众。
m_dialog.setOnCancelListener(new OnCancelListener()
{
public void onCancel(DialogInterface arg0)
{
stop();
}
});
m_dialog.setOnDismissListener(new OnDismissListener()
{
public void onDismiss(DialogInterface dialog)
{
stop();
}
});
按下后退按钮时,此功能正常。但是当屏幕旋转时,对话框隐藏但没有重建,之前没有调用onDimiss。
任何想法,这是Android 2.3中的错误吗?
答案 0 :(得分:0)
以下是快速解决方法:
protected void onDestroy() {
if(m_dialog.isShowing())
m_dialog.dismiss();
super.onDestroy();
}
了解如果您使用Activity#showDialog()
打开对话框,则会发生这种情况。 (我猜您使用的是m_dialog.show()
,所以我的建议是使用showDialog()
或升级到碎片。)