2013-07-24 42 views
0

听keydown事件在android系统具有在桌面所示WindowManager.addView方法从服务处理器我如何在桌面

现在,我要听的“返回键按下”事件视图,以便我能通过WindowManager.removeView方法隐藏此视图。

我已经尝试绑定我的视图上的关键侦听器,但它没有奏效。

tipView.setOnKeyListener(new View.OnKeyListener() { 

    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 

     if(keyCode == KeyEvent.KEYCODE_BACK && isShow){ 
      Message msg = new Message(); 
      msg.what = HANDLER_ACTION_HIDE_TIP; 
      mainHandler.sendMessage(msg); 
     } 

     return false; 
    } 
}); 

我做出的“如果......”行了断点,但我看不到任何事件到这里的时候,我调试应用程序和手机桌面与“返回键”的迫切倍。

那么,我可以做或不做,为什么?

回答

0

对于后退按键使用此功能来代替:

@Override 
public void onBackPressed() { 

    if(isShow){ 
    Message msg = new Message(); 
    msg.what = HANDLER_ACTION_HIDE_TIP; 
    mainHandler.sendMessage(msg); 
    } 
} 
+0

我显示了在(背景)服务这一观点,并在服务类中,还没有一个方法调用onBackPressed。 – jiacheo

+0

您不能监听服务中的keyevents,因为它们不会收到KeyEvent回调。 – g00dy

+0

但是我已经在桌面上展示了这个观点,我能对这个观点做些什么来达到我的目标吗? – jiacheo