onKeyDown()或onBackPressed()

时间:2012-03-05 12:03:51

标签: android back-button

我想在我的应用程序中实现后退按钮功能。在应用程序中,只要我点击中间的后退按钮,我的控件就会直接登录页面,那么有人可以告诉我在哪里覆盖onKeyDown()onBackPressed()方法吗?

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Log.e("back key pressed","Back key pressed");
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

因为我在onCreate里面和onCreate外写这个,但是它没有用......

4 个答案:

答案 0 :(得分:9)

取决于您是否要支持Android 2.0之前的手机。 onBackPressed()方法已添加到Android 2.0(API 5)。

您可以在Android开发人员博客上阅读此帖子了解详情:

  

http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

答案 1 :(得分:4)

见下面的代码。写在onCreate外面

  @Override  
    public boolean onKeyDown(int keyCode, KeyEvent event)  
  {  
         //replaces the default 'Back' button action  
         if(keyCode==KeyEvent.KEYCODE_BACK)  
         {  

                Intent intent = new Intent(currentActivity.this, RequiredActivity.class);
                finish();
                startActivity(intent); 

         }  
         return true;  
   }  

答案 2 :(得分:3)

是的,您可以覆盖该后退按钮

public void onBackPressed() {

     Intent start = new Intent(currentclassname.this,which activity u want.class);
        startActivity(start);
        finishActivity(0);
        }

通过此,您可以继续进行任何活动。这是非常简单易行的方式

答案 3 :(得分:1)

如果您关心的是从历史堆栈中删除登录活动。

执行finish();在您从

开始任何其他活动时的登录活动中