我出现这个问题的原因是Dialog.show()时引起的,分析原因,应该跟Activity的生命周期引起的
我使用下段代码解决了问题
@Overrideprotected void onResume() { mActivityIsActive = true; super.onResume();}@Overrideprotected void onPause() { mActivityIsActive = false; super.onPause();}private void toShowDialog() { /*处理dialog引起的BadTokenException*/ if (mActivityIsActive) { dialog.show(); }private boolean mActivityIsActive;
}
这里我对Activity做了判断,当Activity为Resume状态时,dialog可以正常显示,pause时不显示,我的问题解决了