安卓开发教你监听手机Home键

来源:互联网 发布:it培训 编辑:程序博客网 时间:2024/05/16 09:40

在之前的开发过程中,发现手机home键和其它事件都用到了OnnewIntent,那么主键是怎么监听的呢?

  1. @Override  
  2.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  3.         if(keyCode == KeyEvent.KEYCODE_HOME){  
  4.             //do something  
  5.         }  
  6.         return super.onKeyDown(keyCode, event);  
  7.     }  
可是怎么按也没有监听到,后来才知道原来在这里还需要做另外的操作,上代码===

import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.util.Log;public class HomeWatcher extends BroadcastReceiver {public  boolean onEnterHomeKey = false;static final String SYSTEM_REASON = "reason";static final String SYSTEM_HOME_KEY = "homekey";// home keystatic final String SYSTEM_RECENT_APPS = "recentapps";// long home key@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {String reason = intent.getStringExtra(SYSTEM_REASON);if (reason != null) {if (reason.equals(SYSTEM_HOME_KEY)) {// home key处理点onEnterHomeKey = true;} else if (reason.equals(SYSTEM_RECENT_APPS)) {// long home key处理点onEnterHomeKey = true;}}}}}

做完这些还需要在activity里注册广播:

receiver = new HomeWatcher();

registerReceiver(receiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));

并且要在OnDestroy里面解除该广播

 mContext.unregisterReceiver(receiver)


0 0
原创粉丝点击