0

我有一个 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 中的错误吗?

4

1 回答 1

0

这是快速修复:

protected void onDestroy() {
    if(m_dialog.isShowing())
        m_dialog.dismiss();
    super.onDestroy();
}

请了解,如果您使用Activity#showDialog(). (我猜你改用m_dialog.show()了,所以我的建议是使用showDialog()或升级到 Fragments。)

于 2012-10-28T18:46:25.023 回答