Android 监听Home键、Back键、多任务键最新解决方法
来源:互联网 发布:大学一个人知乎 编辑:程序博客网 时间:2024/06/10 19:05
前言:在开发中,我们经常会去监听系统的按键操作,最常用的就是监听Back键。有时会用到监听Home和多任务键,但是Android系统默认是不让代码监听的,所以我们就得想别的办法,这里写了通过广播监听日志log的demo。
package com.example.djmsh.client_homekey;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.KeyEvent;import android.widget.Toast;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //在setContentView之前添加,未添加的话home键监听无效,设置窗体属性 this.getWindow().setFlags(0x80000000, 0x80000000); setContentView(R.layout.activity_main); //创建广播 InnerRecevier innerReceiver = new InnerRecevier(); //动态注册广播 IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); //启动广播 registerReceiver(innerReceiver, intentFilter); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { Toast.makeText(MainActivity.this, "返回键无效", Toast.LENGTH_SHORT).show(); return true;//return true;拦截事件传递,从而屏蔽back键。 } if (KeyEvent.KEYCODE_HOME == keyCode) { Toast.makeText(getApplicationContext(), "HOME 键已被禁用...", Toast.LENGTH_SHORT).show(); return true;//同理 } return super.onKeyDown(keyCode, event); } class InnerRecevier extends BroadcastReceiver { final String SYSTEM_DIALOG_REASON_KEY = "reason"; final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps"; final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey"; @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) { String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY); if (reason != null) { if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) { Toast.makeText(MainActivity.this, "Home键被监听", Toast.LENGTH_SHORT).show(); } else if (reason.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) { Toast.makeText(MainActivity.this, "多任务键被监听", Toast.LENGTH_SHORT).show(); } } } } }}
阅读全文
1 0
- Android 监听Home键、Back键、多任务键最新解决方法
- 【Android】Back Home键监听
- Android Back Home键监听
- Android 屏蔽Back键,监听Home键
- Android对home back键的监听
- Android Back Home键监听_广播监听
- 监听android home键的实现方式 和back键
- Android Back键与Home键的监听
- Android监听Home键和最近任务
- Android中对menu、home、back键的监听
- android学习之-home和back键的监听
- Android中对menu、home、back键的监听
- Android中对menu、home、back键的监听
- Android设备Home、Menu和Back返回键的监听
- Back键和Home键监听
- 监听通知栏,back,home键
- android back键监听
- Android Back键监听
- 系统虚拟机管理
- 分区恢复之 0扇区 详解
- ffmpeg + SDL2 实现的视频播放器「视音频同步」
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 10 创建ROS消息和ROS服务
- 求解区间最值
- Android 监听Home键、Back键、多任务键最新解决方法
- 点击表头排序时,"分组"及"分组明细"的数据层次关系不变
- Spring 注解的DI
- 梯度爆炸的解决办法:clip gradient
- Python学习笔记-循环
- android控制音量键按下的操作
- 误入前端三年,一个文科生的独白(中)
- 浅谈Vue(Vue项目搭建)
- ajax 调用 java webapi 多个参数(二)