close

例子:

1.遊戲中,按下power key, 遊戲暫停,及一些過程中開啟的thread需要停止

2.鬧鐘響鈴,按power key,將鬧鐘停止

 

 

問題:一般抓取keyevent

  1. /**按键按下触发的事件*/  
  2.     public boolean onKeyDown(int keyCode, KeyEvent event)  
  3.     {  
  4.         switch(keyCode)  
  5.         {  
  6.         case KeyEvent.KEYCODE_DPAD_CENTER:  
  7.             ShowMessage("按下:中键");break;  
  8.         case KeyEvent.KEYCODE_DPAD_UP:  
  9.             ShowMessage("按下:上方向键");break;  
  10.         case KeyEvent.KEYCODE_DPAD_DOWN:  
  11.             ShowMessage("按下:下方向键");break;  
  12.         case KeyEvent.KEYCODE_DPAD_LEFT:  
  13.             ShowMessage("按下:左方向键");break;  
  14.         case KeyEvent.KEYCODE_DPAD_RIGHT:  
  15.             ShowMessage("按下:右方向键");break;  
  16.         }  
  17.         return super.onKeyDown(keyCode, event);  
  18.     }  

甚至volume up ,volume down,都可以抓取,用得很開心

 

但是有個keyevent 抓不到,雖然在KeyEvent裡還是有留下了(KEYCODE_POWER)這個編號,

android 的預設架構下,power key的 event在 底層就會被消化掉了,不會流到讓app作使用,

但是android 關了一扇門,也開了另一扇窗

在power_key在底層消化後,必然做的一件事就是把screen off,也就是關螢幕,然後會送出一個intent 通知 screen off

所以我們可以收取這個Intent來作對應的動作

1) 待机:
广播消息:android.intent.action.SCREEN_OFF (代码)
2) 唤醒:
广播消息:android.intent.action.SCREEN_ON (代码)

參考:http://blog.csdn.net/myarrow/article/details/8143717

 

 

 

arrow
arrow
    全站熱搜

    alansong 發表在 痞客邦 留言(0) 人氣()