我的Activity
中有以下代码,如果发生错误,则显示警告Dialog
:
private void showConfigError() {
if (!isFinishing()) {
new AlertDialog.Builder(this)
.setMessage(R.string.start_failed)
.setCancelable(false)
.setPositiveButton(*/.../*)
.setNegativeButton(*/.../*)
.create()
.show();
}
}
如您所见,在显示
Activity
之前,我检查Dialog
是否仍在运行。但是,尽管如此,我的崩溃日志显示,有时在该部分程序中会出现BadTokenException
。现在我问自己这怎么会发生?!是否存在Activity
可以返回isFinishing() == false
但不再处于 Activity 状态的状态?
最佳答案
试试这个代码
private void showConfigError() {
if (isFinishing()) return;
new AlertDialog.Builder(this)
.setMessage(R.string.start_failed)
.setCancelable(true) // let system kills it.
.setPositiveButton(*/.../*)
.setNegativeButton(*/.../*)
.create()
.show();
}
关于android - BadTokenException即使我检查Activity是否为isFinishing(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38997091/