我已经阅读并尝试了几种建议的解决方案,似乎没有任何效果。任何指导都将不胜感激。
以下是一些其他信息。我的应用程序可以进行4项活动。例如,从主屏幕启动后,用户将进入我的应用程序主菜单。从这里,他们可以点击一个选项菜单来查看一个关于屏幕,给他们提供版本信息等。我的假设是,如果他们从关于菜单回来,他们将被带回我的应用程序主菜单。相反,应用程序退出并将它们带回主屏幕。 Logcat提供以下输出:
D/MAIN_BROWSER: MainBrowser::onCreate
D/MAIN_BROWSER: MainBrowser::onStart
D/MAIN_BROWSER: MainBrowser::onResume
**以上是预期的。现在我点击了活动**
D/MAIN_BROWSER: MainBrowser::onSaveInstanceState
D/MAIN_BROWSER: MainBrowser::onPause
D/ABOUT: AboutBroswer::onCreate
D/ABOUT: AboutBrowser::onStart
D/ABOUT: AboutBrowser::onResume
**现在用户点击后退按钮**
D/ABOUT: AboutBrowser::onBackPressed
D/ABOUT: AboutBrowser::onPause
D/MAIN_BROWSER: MainBrowser::onStop
D/MAIN_BROWSER: MainBrowser::onDestroy
**现在我回到了主屏幕**
谢谢,BRoid
答案 0 :(得分:1)
这是Android的预期行为。但是你可以根据你的应用改变它。为此,您可以覆盖
@Override
protected boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//do here what you want
}
}
http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK
在那里你检查后退按钮是否被按下然后你可以做你想做的任何事情。但请注意,这可能会违反Android设计规则。
答案 1 :(得分:0)
您是如何推出新活动的?您是否偶然在开始下一个活动之前调用当前活动的finish()?这会将它从我认为的活动堆栈中删除。