在使用Dialog的時(shí)候,經(jīng)常會(huì)出現(xiàn)下面的報(bào)錯(cuò):
java.lang.IllegalArgumentException: View=DecorView@xxxx[xx] not attached to window manager
出現(xiàn)該錯(cuò)誤的原因是在dialog調(diào)用dismiss方法時(shí),activity已經(jīng)銷毀了,使得dialog無(wú)法獲取activity對(duì)應(yīng)的window manager進(jìn)而拋出異常。
該異常一般出現(xiàn)在異步操作,如網(wǎng)絡(luò)請(qǐng)求后的回調(diào)。
要解決該異常問(wèn)題,可以先調(diào)用activity的isDestory方法判斷activity是否被destroy掉:
if (!isDestory()) {
dialog.dismiss();
}
或者在onDestroy方法中,調(diào)用dialog的dismiss方法關(guān)掉dialog:
@Override
public void onDestroy() {
super.onDestory();
dialog.dismiss();
}