电源按下做处理函数最后调用interceptPowerKeyDown 这流程可参考相关博客了 当按电源会弹出重启和关机对话框 要实现的功能是 长按5秒才显示对话框 长按10秒重启
framework/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
private void interceptPowerKeyDown(KeyEvent event, boolean interactive) {
…
if (!mPowerKeyHandled) {
if (interactive) {
if (hasLongPressOnPowerBehavior()) {
这里创建了两个消息机制
Message msg = mHandler.obtainMessage(MSG_POWER_LONG_PRESS);
Message msg1 = mHandler.obtainMessage(MSG_POWER_LONG_PRESS_RESET, event);
PowerKeyTimeFrist = event.getDownTime();
msg.setAsynchronous(true);
这里延时5秒发送消息机制 然后弹框
mHandler.sendMessageDelayed(msg, 5000);
延时10秒发送重启消息
mHandler.sendMessageDelayed(msg1, 10000);
}
}
}
…
在消息处理机制添加 重启的消息处理
private class PolicyHandler extends Hand