我有两个活动A和B。当我单击A中的按钮时,将显示B。它正常工作。但是,如果当前活动是B。在那段时间,我单击设备中的默认返回按钮。它显示了右至左转过渡以显示活动A。

我如何在设备上收听该默认的返回键?

编辑:

Log.v(TAG, "back pressed");
finish();
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);
有帮助吗?

解决方案

@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 Developers本身撰写的如何处理重新事件的详细说明:

使用后键

其他提示

对于Android 2.0及以后,活动类中有一种特定的方法:

@Override  
public void onBackPressed() {
    super.onBackPressed();   
    // Do extra stuff here
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK){
        //Do stuff
    }

    return super.onKeyDown(keyCode, event);
}

有关背部关键内容的更多信息可以在此处找到: http://android-developers.blogspot.com/2009/12/back-and-hard-hard-keys-three-stories.html

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

@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
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top