Android上的home键是系统直接处理的,功能如下:
1:跳转到Home界面,如果Home进程死掉了,则重新启动Home进程
2:长按5s,弹出选择应用的窗口,可以切换应用.
由于需要,我需要修改这里的部分逻辑,修改后的逻辑不能放出,这里放出我找到的大概地点
这里贴出一些代码,是在 frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java 文包括件里的,主要是处理特殊按键的,里面涵盖来android中的特殊按键,还包括Search和其他特殊键
对于Home键的逻辑,大致的分析是:
1 : 如果用户按下Home键,则开始一个计时器,具体是里面的mHomeLongPress对象,如果超过5s,则弹出一个切换app的窗口
2 : 用户松开Home键,则视为单机时间,现把系统中的一些浮动的模态窗口关闭,具体的代码是 :
sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY);
3: 关闭模态窗口后,启动或者切换Home应用,代码:
startDockOrHome
我自己添加的代码这里不能放出,有这样的需求可以在这里手动加入.