android中是否有默认的返回键(设备上)监听器?

时间:2010-04-07 11:38:08

标签: android android-emulator android-keypad

我有两个活动A和B.当我点击A中的按钮时会显示B.当我点击B中的按钮时它返回到A.我在finish()方法之后设置了overridePendingTransition方法。它工作正常。但是如果当前活动是B.那么我单击设备中的默认后退按钮。它显示了从右到左的过渡以显示活动A.

我如何在设备上收听默认后退键?

修改

Log.v(TAG, "back pressed");
finish();
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);

5 个答案:

答案 0 :(得分:40)

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

以下链接详细解释了如何处理由Android开发人员自己编写的返回键事件:

Using the back key

答案 1 :(得分:26)

对于Android 2.0及更高版本,Activity类中有一个特定的方法:

@Override  
public void onBackPressed() {
    super.onBackPressed();   
    // Do extra stuff here
}

答案 2 :(得分:2)

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK){
        //Do stuff
    }

    return super.onKeyDown(keyCode, event);
}

答案 3 :(得分:0)

答案 4 :(得分:0)

我在使用媒体播放器的活动中使用此代码。我需要在用户按下后退按钮时停止播放,但仍然可以返回上一个活动。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        try{
            mp.stop(); //this line stops the player
            return super.onKeyDown(keyCode, event);//this line does the rest 
        }
        catch(IllegalStateException e){
            e.printStackTrace();
        }
        return true;
    }

    return super.onKeyDown(keyCode, event); //handles other keys
}