前言
Home键和BACK是Android中最实用的,因此本文就简单的介绍一下监听HOME和BACK键。
好记性不如烂笔头
正文
由于Android的管控越来越严格,HOME键已经无法拦截,但可以监听,BACK键的监听和拦截都可以。
监听HOME键
目前监听HOME的按键,可以监听:
public static final String ACTION_CLOSE_SYSTEM_DIALOGS = "android.intent.action.CLOSE_SYSTEM_DIALOGS"; 看命名就知道,这个触发用来关闭Dialog的。
直接上怎么监听。
private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (null == intent || null == intent.getAction()) { return; } String action = intent.getAction(); if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) { String reason = intent.getStringExtra("reason"); if (!TextUtils.isEmpty(reason) && reason.equals("homekey")) { // home } } } }; PS: 上面这个广播还可以监听多任务键(recentapps),我这就不附上了。
监听BACK键
至于BACK键的拦截和监听,这个就比较多了。
重写Activity的onKeyDown方法
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同时没有重复 //do something ... return true; } return super.onKeyDown(keyCode, event); } 重写onBackPressed方法
@Override public void onBackPressed() { // 注意:仅适用于2.0或更新版的sdk版本 return; } 项目中比较常用的就重写onBackPressed()。
参考文章
联系我们
微信号:rssme_com