Android“后退”按钮的行为并不像我认为的那样

时间:2011-03-21 18:28:35

标签: android

我已经阅读并尝试了几种建议的解决方案,似乎没有任何效果。任何指导都将不胜感激。

以下是一些其他信息。我的应用程序可以进行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

2 个答案:

答案 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()?这会将它从我认为的活动堆栈中删除。