Android BadTokenException-返回按钮
我知道这个话题在网络上被问了数万亿次,但是没有一个地方能回答 在我的应用程序中,我有一个欢迎屏幕。当我端到端运行程序时,一切都正常-打开/关闭活动并显示各种对话框。Android BadTokenException-返回按钮,android,Android,我知道这个话题在网络上被问了数万亿次,但是没有一个地方能回答 在我的应用程序中,我有一个欢迎屏幕。当我端到端运行程序时,一切都正常-打开/关闭活动并显示各种对话框。 但是,当我到达欢迎屏幕并按下后退按钮时,一切都变得一团糟: 1) 我要显示的对话框导致BadTokenException(我使用的是this,而不是getApplicationContext()) 2) 我尝试使用try/catch捕获异常,但它确实通过了showDialog行。但是,在第二节。运行,当到达showDialog表达式
但是,当我到达欢迎屏幕并按下后退按钮时,一切都变得一团糟:
1) 我要显示的对话框导致BadTokenException(我使用的是
this
,而不是getApplicationContext()
)
2) 我尝试使用try/catch捕获异常,但它确实通过了showDialog
行。但是,在第二节。运行,当到达showDialog
表达式时,它抛出IllegalStateException:View.com.android.internal.policy.impl.PhoneWindow$DecorView@44a59830已添加到窗口管理器中
此外,我知道按HOME键会导致活动暂停,而按BACK键会导致onDestroy,但出了什么问题
我试图在一周多的时间内解决这个问题,但没有成功。
有什么想法吗?我没给你们完整的答案,但我想当你们按下后退按钮时,你们需要做一些事情。所以,您可以覆盖欢迎屏幕活动或任何其他活动中的返回按钮,并在其中添加代码
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// add you code here
return true;
}
return super.onKeyDown(keyCode, event);
}
我唯一能想到的替换“在此处添加代码”的方法是调用finish()。问题是-finish()导致与BACK按钮完全相同的行为:(finish()导致与BACK按钮完全相同的行为!???当您的活动完成并且应该关闭时调用finish()(调用onDestroy)。如果BACK按钮操作可以覆盖并按照您的意愿执行,我的意思不是这个“导致与后退按钮完全相同的行为”。我的意思是,如果我尝试在主屏幕中调用finish,我会抛出相同的错误和异常。我可以在后退按钮中写入什么内容?-从主活动中按后退返回主屏幕,这是正常的-但会在途中造成问题。