2011-01-10 94 views
0

我知道这个话题在整个网络中被询问了数万亿次,但是没有一个地方可以回答它。BadTokenException - 返回按钮

在我的应用程序中,我有一个欢迎屏幕。当我运行程序端到端时,一切都很好 - 打开/关闭活动并显示各种对话框。
但是,当我到欢迎屏幕,并从那里按BACK按钮 - 一切都变得凌乱:
1)我想因由BadTokenException对话(我使用this而不是getApplicationContext())。

2)我尝试使用try/catch来捕捉异常 - 它真的通过了showDialog行。但随后,在第二。运行时,当达到showDialog表达式时,它会抛出IllegalStateException: [email protected]9830 has already been added to the window manager。此外,据我所知,按下HOME会导致活动中的onPause,而BACK导致onDestroy,但是出现什么问题?

我正试图解决这个问题超过一周,但没有成功。 有什么想法?

回答

0

我没有让你完整,但我认为你需要做一些东西,当你按下后退按钮。所以,你可以重写你的后退按钮在你欢迎屏幕上的活动或任何其他活动,并添加你的代码有

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     // add you code here 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+0

我能想到的替换“在此处添加代码”的唯一的事情就是调用完成()。问题是 - finish()会导致与BACK按钮完全相同的行为: – Amico 2011-01-10 16:34:23