Android4.0 Power、home、menu等按键处理分析(二)

2014-11-24 11:47:47 · 作者: · 浏览: 7
eing(KeyEvent event, int policyFlags, boolean


isScreenOn) {


return mWindowManagerService.mInputMonitor.interceptKeyBeforeQueueing(


event, policyFlags, isScreenOn);


}


InputMonitor.java


public int interceptKeyBeforeQueueing(


KeyEvent event, int policyFlags, boolean isScreenOn) {


return mService.mPolicy.interceptKeyBeforeQueueing(event, policyFlags, isScreenOn);


}


这里mService是WindowManagerService,mPolicy 则是如下定义(WindowManagerService中)


final WindowManagerPolicy mPolicy = PolicyManager.makeNewWindowManager();


PolicyManager.java


public static WindowManagerPolicy makeNewWindowManager() {


//sPolicy就是Policy的实例化


return sPolicy.makeNewWindowManager();


}


Policy.java


public WindowManagerPolicy makeNewWindowManager() {


return new PhoneWindowManager();


}


至此,正式调用PhoneWindowManager的实例。


因此处理hardkey的相关代码是在PhoneWindowManager中了