博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 监听返回键、HOME键
阅读量:5311 次
发布时间:2019-06-14

本文共 2621 字,大约阅读时间需要 8 分钟。

拦截返回键,HOME键,继承BaseActivity即可

import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.widget.Toast;/** * 所有Activity继承该类, * 该类监测到home键的点击时的事件进行自己的处理 * 拦截返回键 * @author RongGuang *  */public class BaseActivity extends Activity {    // 监听HOME键    HomeKeyEventBroadCastReceiver receiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        // 监听home键广播        receiver = new HomeKeyEventBroadCastReceiver();        registerReceiver(receiver, new IntentFilter(                Intent.ACTION_CLOSE_SYSTEM_DIALOGS));    }    //拦截其他键    @Override    public boolean onKeyDown(int keyCode,KeyEvent event){        switch(keyCode){            case KeyEvent.KEYCODE_HOME:return true;            case KeyEvent.KEYCODE_BACK:return true;            case KeyEvent.KEYCODE_CALL:return true;            case KeyEvent.KEYCODE_SYM: return true;            case KeyEvent.KEYCODE_VOLUME_DOWN: return true;            case KeyEvent.KEYCODE_VOLUME_UP: return true;            case KeyEvent.KEYCODE_STAR: return true;        }        return super.onKeyDown(keyCode, event);    }    @Override    protected void onDestroy() {        unregisterReceiver(receiver);        super.onDestroy();    }    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处理点                        Log.e("homekey", "home键被点击");                        Toast.makeText(BaseActivity.this, "Home键被点击", Toast.LENGTH_SHORT).show();                    } else if (reason.equals(SYSTEM_RECENT_APPS)) {                        // long homekey处理点                         Log.e("homekey", "长按home键");                         Toast.makeText(BaseActivity.this, "Home键长按", Toast.LENGTH_SHORT).show();                    }                }            }        }    }}

 

转载于:https://www.cnblogs.com/rongguang/p/5180065.html

你可能感兴趣的文章
从服务器上的数据库备份到本地
查看>>
Tabcontrol动态添加TabPage(获取或设置当前选项卡及其属性)
查看>>
面象对象设计原则之六:迪米特原则(LeastKnowledge Principle, LKP)
查看>>
LeetCode Algorithm 03_Longest Substring Without Repeating Characters
查看>>
常见浏览器兼容性问题与解决方案?
查看>>
2016福州大学软件工程第四次团队作业-系统设计成绩汇总
查看>>
Codeforces 924D Contact ATC (看题解)
查看>>
Codeforces 173E Camping Groups 线段树
查看>>
【Java基础】Java中的持久属性集Properties
查看>>
NUMPY数据集练习 ----------SKLEARN类
查看>>
Python 2.X 版本 600行入门基础
查看>>
windows文件夹嵌套太多,导致无法删除的解决方法
查看>>
下拉刷新:继承listView控件
查看>>
SqlServer之代码块相关
查看>>
我的手机 不支持箭头函数
查看>>
TSQL语句中的Like用法
查看>>
ExtJs 4.x Ajax简单封装
查看>>
----斐波那契数列---eval函数----类递归思想 栈 进出 思想
查看>>
Yii2 的快速配置 api 服务 yii2-fast-api
查看>>
javascript学习笔记 null和undefined
查看>>