iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android中监听Home键的4种方法总结
  • 866
分享到

Android中监听Home键的4种方法总结

方法home键Android 2022-06-06 10:06:25 866人浏览 独家记忆
摘要

昨天需要处理一个问题,需要监听home键。最开始想到使用onKeydonwn这个方法。但是发现home不能这样处理,onKeydonwn可以处理菜单键和back键,但home不

昨天需要处理一个问题,需要监听home键。最开始想到使用onKeydonwn这个方法。但是发现home不能这样处理,onKeydonwn可以处理菜单键和back键,但home不能。因为home键是系统键,情况特殊一些。
看了一下网上的资料,说下面的方法可以。(其实不行)
代码如下:
@Override 
   public void onAttachedToWindow() { 
       // TODO Auto-generated method stub 
       Log.d("aeon","onAttachedToWindow"); 
       this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);  
       super.onAttachedToWindow(); 
   } 
加了权限之后也不行。
代码如下:
<uses-permission Android:name="android.permission.DISABLE_KEYGUARD" > 
   </uses-permission> 

 
实验几次之后(android4.1 和android4.2)发现在单个的activity里面有以下几个方法可以使用:
 
方法1:onSaveInstanceState方法
  下面这个方法可以处理home的监听问题。
代码如下:
protected void onSaveInstanceState(Bundle outState) 

但这个方法不是很好,不推荐

方法2:onUserLeaveHint方法
 
代码如下:
@Override 
    protected void onUserLeaveHint() { 
        Log.d("aeon","onUserLeaveHint"); 
        super.onUserLeaveHint(); 
    } 
 
这个方法会在onSaveInstanceState之前执行,根据api的解释,这个方法还比较合适的。
 
方法3:ACTION_CLOSE_SYSTEM_DIALOGS
 
在使用广播监听方面可以使用ACTION_CLOSE_SYSTEM_DIALOGS
代码如下:
//注册Receiver 
  
              HomeKeyEventBroadCastReceiver receiver = new HomeKeyEventBroadCastReceiver(); 
             reGISterReceiver(receiver, new IntentFilter( 
                           Intent. ACTION_CLOSE_SYSTEM_DIALOGS)); 
方法4:framework PhoneWindowManager.java 处理
 
想要完全监听home键需要在framework层去处理。
/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
里面去修改private void handleLongPressOnHome() 这个方法。
 
代码如下:
private void handleLongPressOnHome() { 
        // We can't initialize this in init() since the configuration hasn't been loaded yet. 
        if (mLongPressOnHomeBehavior < 0) { 
            mLongPressOnHomeBehavior 
                    = mContext.getResources().getInteger(R.integer.config_longPressOnHomeBehavior); 
            if (mLongPressOnHomeBehavior < LONG_PRESS_HOME_NOTHING || 
                    mLongPressOnHomeBehavior > LONG_PRESS_HOME_RECENT_SYSTEM_UI) { 
                mLongPressOnHomeBehavior = LONG_PRESS_HOME_NOTHING; 
            } 
        } 
 
        if (mLongPressOnHomeBehavior != LONG_PRESS_HOME_NOTHING) { 
            perfORMHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false); 
            sendCloseSystemwindows(SYSTEM_DIALOG_REASON_RECENT_APPS); 
 
            // Eat the longpress so it won't dismiss the recent apps dialog when 
            // the user lets Go of the home key 
            mHomeLongPressed = true; 
        } 
 
        if (mLongPressOnHomeBehavior == LONG_PRESS_HOME_RECENT_DIALOG) { 
            showOrHideRecentAppsDialog(RECENT_APPS_BEHAVIOR_SHOW_OR_DISMISS); 
        } else if (mLongPressOnHomeBehavior == LONG_PRESS_HOME_RECENT_SYSTEM_UI) { 
            try { 
                IStatusBarService statusbar = getStatusBarService(); 
                if (statusbar != null) { 
                    statusbar.toggleRecentApps(); 
                } 
            } catch (RemoteException e) { 
                Slog.e(TAG, "RemoteException when showing recent apps", e); 
                // re-acquire status bar service next time it is needed. 
                mStatusBarService = null; 
            } 
        } 
    } 
只要把handleLongPressOnHome里面做出相对应的处理就ok

您可能感兴趣的文章:android 电话状态监听(来电和去电)实现代码Android应用中Back键的监听及处理实例Android中检查、监听电量和充电状态的方法Android中实现监听ScrollView滑动事件android中使用Activity实现监听手指上下左右滑动Android中监听判断网络连接状态的方法android Animation监听器AnimationListener的使用方法)全面解析Android中对EditText输入实现监听的方法Android控件系列之Button以及Android监听器使用介绍Android自定义ScrollView使用自定义监听


--结束END--

本文标题: Android中监听Home键的4种方法总结

本文链接: https://www.lsjlt.com/news/26830.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 在Android项目中怎么监听home键
    这期内容当中小编将会给大家带来有关在Android项目中怎么监听home键,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Android 解决监听home键的几种方法前言:以下两种方法可以完美解决监听bac...
    99+
    2023-05-31
    android home roi
  • Android应用中如何监听与拦截Home键
    这篇文章将为大家详细讲解有关Android应用中如何监听与拦截Home键,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、在应用中按下Home键的逻辑处理当我们在应用中按下Home键时界面会...
    99+
    2023-05-31
    android home 如何监听
  • vue watch监听方法总结
    目录1.vue中的watch作用就如其命名就是监听的作用2.监听这个对象的属性3.监听这个对象的属性4.监听这个对象的属性在vue中,使用watch来响应数据的变化,关于watch的...
    99+
    2024-04-02
  • Android EditText的setOnEditorActionListener方法——监听软键盘按键
    文章目录 1、控件EditText的setOnEditorActionListener方法的使用2、 android 软件盘事件响应:android: imeOptions 、KeyEvent...
    99+
    2023-09-14
    android
  • Python查询缺失值的4种方法总结
    目录缺失值 NaN ①缺失值 NaN ②空值字符“-”、“?”等在我们日常接触到的Python中,狭义的缺失值一般指DataFrame...
    99+
    2024-04-02
  • Android项目中监听软键盘的方法有哪些
    Android项目中监听软键盘的方法有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。function 1:重写Activity的dispatchKeyEve...
    99+
    2023-05-31
    android roi 目中
  • 如何监听Vue项目报错的4种方式
    目录背景onerrorelement.onerrorerrorHandlererrorCapturederror传播规则(划重点)如何监听异步错误总结背景 在开发Vue项目时,使用浏...
    99+
    2024-04-02
  • Java下载文件的4种方式总结
    1. 使用URL类的openStream()方法:这是最基本的下载文件的方式。通过URL.openStream()方法,可以获取到文件的输入流,然后使用输入流的read()方法来读取文件内容,并将其写入到本地文件中。2. 使用URLCo...
    99+
    2023-08-09
    Java
  • 【总结分享】discuz丢失index.php的4种解决方法
    当您尝试访问您的 Discuz 论坛时,如果发现无法打开主页,可能会受到 index.php 文件丢失的影响。该文件是 Discuz 论坛的核心文件之一,因此您必须尽快找到解决方案以确保您的网站能够正常运行。本文将介绍您可以采取的一些方法来...
    99+
    2023-05-14
    discuz php
  • 前端JS获取URL参数的4种方法总结
    目录前言方法1: 字符串 split 方法方法2: 利用 URLSearchParams 方法方法3: 利用正则匹配方法方法4: 使用第三方库 qs总结:前言 对于前端来说,无论是在...
    99+
    2024-04-02
  • Android截屏截图的几种方法总结
     Android截屏  Android截屏的原理:获取具体需要截屏的区域的Bitmap,然后绘制在画布上,保存为图片后进行分享或者其它用途一、Activity截屏截Activity界面(包含空白的状态栏) public static B...
    99+
    2023-05-31
    android 截屏 截图
  • Android Notification的多种用法总结
    Android Notification的多种用法总结我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问...
    99+
    2023-05-31
    android notification roi
  • C++中4种管理数据内存的方式总结
    目录C++的4种管理数据内存的方式自动存储静态存储动态存储线程存储栈、堆、内存泄漏根据用于分配内存的方法,C++中有3中管理数据内存的方式:自动存储、静态存储和动态存储(有时也叫做自...
    99+
    2024-04-02
  • 全面总结Vue3.0的多种侦听方式
    目录侦听器一、wacthEffect二、watch1.1第一种方式侦听1.2第二种方式侦听1.3侦听多个数据源总结侦听器 虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的...
    99+
    2024-04-02
  • mysql字符串拼接的4种方式总结
    目录前言第一种:第二种:第三种:第四种(运算,只对数字有效):附:mysql group_concat()详解总结 前言 总是记不住字符串拼接,每次都要百度去搜索,所以在这里记录一下,好方便后续的查找...
    99+
    2023-02-15
    mysql字符串拼接 mysql 字符串连接函数 数据库字符串拼接
  • 简单总结单例模式的4种写法
    目录一、单例模式二、写法三、饿汉式四、懒汉式五、内部类六、枚举七、结论一、单例模式 属于创建者模式的一种, 单例模式的目的是使该类只有一个实例,同一个类的不同对象有不同的hashCo...
    99+
    2024-04-02
  • 总结4种提高编程技能的方式
    本篇内容介绍了“总结4种提高编程技能的方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 重构现有工具...
    99+
    2024-04-02
  • Pandas对数值进行分箱操作的4种方法总结
    目录前言1、between & loc2、cut3、qcut4、value_counts前言 使用 Pandas 的between 、cut、qcut 和 value_cou...
    99+
    2024-04-02
  • 详解Android Activity中的几种监听器和实现方式
    目录ActivityView常用事件接口设置监听的几种方法1)让Activity实现接口2) 匿名内部类3) onClick可以在xml中设置4) 实现类5) 成员变量Activit...
    99+
    2024-04-02
  • Vue watch监听使用的几种方法
    目录一、watch使用的几种方法二、watch中的immediate与handler和deep属性一、watch使用的几种方法 1、 通过 watch 监听 msg 数据的变化。 w...
    99+
    2022-12-22
    Vue watch监听 Vue watch监听原理
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作