admin 管理员组文章数量: 1184232
转自文章《Android Back Home监听》
Back键的监听
对于Back键的监听比较容易,可以在多个系统回调处拦截,比如在 activity的下列方法中都可以收到Back键按下的事件 :
Home键的广播监听
对于Home键的监听不是那么容易,因为Home键可以将程序退出放在后台,所以这个事件是直接分发给系统,系统接收到之后做相应处理,Home键的事件不是直接传递到应用里面.所以在上述监听Back键的代码中, 相应的回调中是收不到Home键的事件的 .
参考文后的博客链接, 对Home键的监听主要通过注册广播接收器实现 ,拦截让窗口关闭的系统动作,然后根据Intent里面的具体参数,分析当前到底是Home键, 应用切换键,还是其他功能按键.
接收器实现如下:
注意不同手机的按键不同,所以需要对不同理由做区分.
Home键监听广播注册
广播接收器的注册有两种方式,一种是静态注册,即写在manifest里面声明;另一种是动态注册,即在Java代码里面注册.
上面对Home键实现监听的这个receiver,静态注册如下:
但是发现 静态注册不起作用,即收不到onReceive回调 .
采用动态注册:
在Activity的onResume和onPause里面分别调用:
当然也可以根据需要在其他合适的时机注册和注销.
版权声明:本文标题:从零开始:详解在 Android 上如何监听和响应 Back 和 Home 快捷键动作 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1771865419a3549432.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论