Android 监听返回键、HOME键
拦截返回键,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();
- }
- }
- }
- }
- }
- }
Android 监听返回键、HOME键的更多相关文章
- Android监听返回键、Home键+再按一次返回键退出应用
Android监听返回键需重写onKeyDown()方法 Home键keyCode==KeyEvent.KEYCODE_HOME @Override public boolean onKeyDown( ...
- android 监听返回键
android监听返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE ...
- Android 监听返回键退出程序的两种实现
1.Android 双击返回键退出程序 思路:用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态.定 ...
- Android 监听软键盘搜索键
现在很多的Android应用都有了数据搜索功能,在以往的设计上,会使用搜索框+搜索按钮来实现搜索功能: 现在呢,越来越流行的是,去除搜索按钮,直接监听软键盘搜索键,当用户输入完搜索关键字后,直接点击软 ...
- vs xamarin android 监听返回键退出程序
public override bool OnKeyDown([GeneratedEnum]Keycode keyCode, KeyEvent e) { if (keyCode == Keycode. ...
- Android WindowManager 监听返回键及home键
一.监听home键盘,Android Home键系统负责监听,捕获后系统自动处理.有时候,我们需要监听home键处理自己的逻辑,监听方法如下: /** * 监听home键广播 */ private f ...
- Android 如何监听返回键,弹出一个退出对话框
android 如何监听返回键点击事件,并创建一个退出对话框, 防止自己写的应用程序不小心点击退出键而直接退出.自己记录下这个简单的demo,备用. public class BackKeyTest ...
- 【Android】Android实现监听返回键,主键(HOME),菜单键
目录结构: contents structure [+] 简介 监听 返回键 监听 主键(Home键) 监听 菜单键 一.简介 本篇文章介绍如何在Android中实现监听返回键,主键,菜单键.一般情况 ...
- [转]Android 如何监听返回键,弹出一个退出对话框
本文转自:http://blog.csdn.net/sunnyfans/article/details/8094349 Android 如何监听返回键点击事件,并创建一个退出对话框, 防止自己写的应用 ...
随机推荐
- volatile与synchronized的区别
1.锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility). 互斥即一次只允许一个线程持有某个特定的锁,因此可使用该特性实现对共享数据的协调访问协议,这样,一 ...
- 【iCore3双核心板】发布 iCore3 硬件手册!
百度网盘下载: https://pan.baidu.com/s/1jHZJCbW 博客园下载: http://files.cnblogs.com/files/xiaomagee/iCore3%E7%A ...
- PHP 字符串的隐式转换规则以及针对包含字母的字符串的递增/递减操作
之前一直对 PHP 中关于字符串的算数运算隐式类型转换规则和递增/递减操作符针对字符串的操作比较模糊,今天总结一下. 一.隐式转换 二进制算术运算符的隐式类型转换规则(http://php.net/m ...
- linux 源码安装详解
./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本.make是用来编译的,它从Makefile中读取指令,然后编 ...
- 被swoole坑哭的PHP程序员
被swoole坑哭的PHP程序员 2015-09-16 09:57 文帅营 博客园 字号:T | T 首先说一下对swoole的理解:披着PHP外衣的C程序.很多PHPer朋友看到swoole提供的强 ...
- HTML5 history新特性pushState、replaceState
DOM中的window对象通过window.history方法提供了对浏览器历史记录的读取,让你可以在用户的访问记录中前进和后退. 从HTML5开始,我们可以开始操作这个历史记录堆栈. 1.Histo ...
- 轻量级队列beanstalkd
一.基本Beanstalkd,一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Face ...
- [skill] 进程 线程
在业务逻辑上: 进程线程没有区别. 在系统资源上: 进程拥有自己的地址空间.线程拥有自己的堆栈和临时变量,与其他线程共享地址空间. 在通信代价上: 线程间通信代价更低,实现更方便.进程通信相对开销比较 ...
- ORM系列之二:EF(4) 约定、注释、Fluent API
目录 1.前言 2.约定 2.1 主键约定 2.2 关系约定 2.3 复杂类型约定 3.数据注释 3.1 主键 3.2 必需 3.3 MaxLength和MinLength 3.4 NotMapped ...
- cloudera learning6:Hadoop Security
保证Hadoop安全的最有效方法是对cluster进行隔离(isolation,常用方法是把大集群划分若干个小集群). Hadoop安全措施的目的是防止好的人不小心做了坏的事,而非防止坏人坏事. Ke ...