HOME键操作的事件监听

本文介绍了在Android系统中如何监听HOME键的操作。一种方法是通过ActivityManagerService发送的Intent.ACTION_CLOSE_SYSTEM_DIALOGS广播,另一种是在低版本SDK的Activity中重写onAttachedToWindow方法,并设置window类型为WindowManager.LayoutParams.TYPE_KEYGUARD。
(1)单击/双击HOME键,系统会发送一个广播:ACTION_CLOSE_SYSTEM_DIALOGS;
在接收广播中的处理为:String reason = intent.getStringExtra("reason");
     if (reason.equals("homekey")) {

                   // "home press"
               }

     if (reason.equals("recentapps")) {

                    // "home double click"
               }
ps:当屏幕超时进行锁屏时;当用户按下电源按钮,长按或短按(不管有没跳出话框),进行锁屏时;android系统都会广播此Action(ACTION_CLOSE_SYSTEM_DIALOGS)消息。

此广播是在frameworks\base\services\java\com\android\server\am\ActivityManagerService.java里发送的Intent.ACTION_CLOSE_SYSTEM_DIALOGS

(2)在android低版本的SDK中,还有另一种方式可以获取HOME键的按下事件:

在activity中重写方法onAttachedToWindow():

@Override
   public void onAttachedToWindow() {
             getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
             super.onAttachedToWindow();

   }

然后在onKeyDown()函数中根据入参keyCode判断是否有HOME键的动作触发。
(3)利用activity的onSaveInstance(Bundle outstate)方法,在界面暂时退出时,可将一些需要备份的数据保存到outstate中;下次再次启动该activity时,从onCreate的入参中取备份的数据。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值