back键
监听back键还是很简单的,有两种方法:
- 调用onBackPressed()方法:调用此方法会自动调用finish()。
@Override
public void onBackPressed() {
statement //在按返回键时的操作
}
- 调用onKeyDown()方法:根据keyCode的值,做具体操作
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
statement//具体操作
return false; //
}else {
return super.onKeyDown(keyCode, event);
}
}
注意!!!——>对于onKeyDown的返回值问题,需要谨慎处理。
Return true to prevent this event from being propagated further,
or false to indicate that you have not handled this event and it should continue to be propagated.返回 true 是为了阻止这个事件被传播;
返回 false 来表明你并没有控制这个点击事件,事件继续传播;
menu键
- 对Menu键的监听,采用对back监听的第二种方法。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_MENU)) {
statement//具体操作
return false; //
}else {
return super.onKeyDown(keyCode, event);
}
}
Home键
Home键的监听是一个比较难处理的部分,也是出问题最多的部分。
由于没有时间动手编写代码测试,后期补上。这里我只给出整体思路,附加几篇有代码描述的文章供大家参考(这几篇文章好像都有不全面的地方,对不同品牌的手机,处理方式有所差别)。
监听Home键:
① 创建广播接受者;
② 在Activity或者Service中 动态 注册监听;
③ 在Activity使用;
参考博客: