在Android应用开发过程中,通常会使用对话框Dialog作为消息提示,这时候最常报的异常就是BadTokenException异常了,下面总结一下这种异常发生的原因。
1、Context不对,当使用Application.getContext()或者getApplicationContext()或者getBaseContext()就会报此错误
2一个Activity发生窗体泄漏了,也就是我们常说的内存泄漏,为什么窗体会泄漏,主要是你的打开一个PopupWindow(窗体)时,如图。它没有关闭PopupWindow(窗体),就退出这个Activity,就会发生这个错误,因为这里就有一个顺序,你要先关闭PopupWindow,再关闭Activity,这个一定的,PopupWindow(窗体)不能独立存在。