Android中是否有默认的返回键(在设备上)侦听器?
-
25-09-2019 - |
题
我有两个活动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);
}
我在与媒体播放器的活动上使用此代码。当用户按下后退按钮时,我需要停止播放,但仍然可以返回以前的活动。
@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
}
不隶属于 StackOverflow