Android 以广播的方式监听Home键

前言

最近在写一个项目模块,需要监听Android手机的Home键,但是Home键属于手机系统键,在Activity当中监听其他的键Google给我提供了相应的方法,唯独Home键没有提供,那是否有什么方法可以监听Home键呢?答案是有的,用注册广播的方式来监听Home键,除了这一种方式以外,其实还有其他几种方式,但是个人认为这种方式比较好,所以在这里我就只针对广播的方式来监听Home键的讲解,若有不妥的地方,还望指出。

以下是代码部分
package cn.zt.demo.broadcastreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

// 广播接收器
public class HomeKeyBroadCastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // 在这里处理HomeKey事件
        Log.d("HomeKey按下");
        }
    }

}
package cn.zt.demo.activity;

import cn.zt.demo.broadcastreceiver.HomeKeyBroadCastReceiver;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;

// 在activity中使用该广播进行监听Home键的按下操作,当按下Home键,会发出一个广播,然后通过自定义的广播接收器接收
public class HomeKeyEventActivity extends Activity {

    private HomeKeyBroadCastReceiver mReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_homekey_event);
        // 注册广播,这里需要在代码中注册广播,在清单文件中注册静态广播貌似不太管用,可以尝试一下
        registerHomeKeyReceiver();
    }

    private void registerHomeKeyReceiver() {
        mReceiver = new HomeKeyBroadCastReceiver(); 
        // 注册广播,注意action:Intent.ACTION_CLOSE_SYSTEM_DIALOGS,添加这个action才能监听到按下Home键发出的广播
        registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));  
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if(mReceiver != null){
            // 解除广播
            unregisterReceiver(mReceiver);
        }
    }
}
以上是利用广播监听HomeKey按下事件的全部内容,如有欠妥,还望指出
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值