home键,锁屏和解锁的监听

1、home键的监听

在自定义的Application中注册home键的监听广播,如下

//注册home监听
        homeKeyEventBroadCastReceiver = new HomeKeyEventBroadCastReceiver();
        registerReceiver(homeKeyEventBroadCastReceiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));


class HomeKeyEventBroadCastReceiver extends BroadcastReceiver {

        static final String SYSTEM_REASON = "reason";
        static final String SYSTEM_HOME_KEY = "homekey";//home key
        static final String SYSTEM_RECENT_APPS = "recentapps";//long home key

        @Override
        public 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处理点
//                    Toast.makeText(BaseActivity.this, "home", Toast.LENGTH_SHORT).show();
                        Intent intent1 = new Intent(getApplicationContext(), WelcomeActivity.class);
                        intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                        startActivity(intent1);

                    } else if (reason.equals(SYSTEM_RECENT_APPS)) {
                        // long home key处理点
                    }
                }
            }

        }
    }


2、锁屏及解锁的监听

在自定义的Application中注册home键的监听广播,如下

//注册锁屏解锁监听
        screenActionReceiver = new ScreenActionReceiver();
        IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_SCREEN_OFF);
        filter.addAction(Intent.ACTION_SCREEN_ON);
        registerReceiver(screenActionReceiver, filter);


public class ScreenActionReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (action.equals(Intent.ACTION_SCREEN_ON)) {//屏幕解锁广播
                Intent intent1 = new Intent(getApplicationContext(), WelcomeActivity.class);
                intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent1);
            } else if (action.equals(Intent.ACTION_SCREEN_OFF)) {//屏幕锁屏广播
                Log.w("TAG", "屏幕加锁广播...");
            }
        }
    }

之后,重写onTerminate()方法,在这个方法中将广播反注册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值