Android中提供了两种(其实是一种)监听返回键的方法
Activity中有两个可以重写的方法:
一、直接监听返回健
/**
* 返回键
*/
@Override
public void onBackPressed() {
super.onBackPressed();
}
当用户按下手机的【返回】键的时候,这个方法就会回调
二、监听屏幕按键
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode== KeyEvent.KEYCODE_BACK) {//返回键
}
return super.onKeyDown(keyCode, event);
}
当用户按下屏幕上的任何按键时,此放法会回调
当我们发现一个功能有两种实现方式时,就要多问自己一句,这两种实现方式有什么不同?
按捺不住自己的好奇心,我点开了源码
/**
* activity中的源码
*/
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (getApplicationInfo().targetSdkVersion
>= Build.VERSION_CODES.ECLAIR) {
event.startTracking();
} else {
onBackPressed();
}
return true;
}
}
这个方法很长,但是刚开始就这么几行代码
从源码里可以看到,onKeyDown()方法中回调了onBackPressed()方法。
所以我说其实是一种实现方式!