내 앱에서 서비스로 overlay window
을 표시하고 있습니다. press back button
일 때 창을 숨기려고합니다. 그래서 back button pressed
호출 결코 back button event
나는 다음과 같은 코드를 할Android의 오버레이 창에서 BACK 버튼 콜백
class MyView extends MyLayout{
public MyView(Context context){
super(context);
LayoutInflater.from(context).inflater(R.layout.my_view,this);
}
}
Class MyLayout extends FrameLayout{
public MyLayout(Context context){
super(context);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
Log.e("key event", "" + event.getKeyCode());
return super.dispatchKeyEvent(event);
}
}
//service code
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
| WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS |
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION | WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
PixelFormat.TRANSLUCENT);
final MyView myview = new MyView(this);
windowManager.addView(myview,param);
그러나 dispatchKeyEvent
방법을 얻을 수 있습니다. 나는 인터넷 검색을하고 이것은 뒤로 버튼 이벤트를 캡처하는 방법임을 알게되었습니다. 어떻게 든 내 사건에는 효과가 없어. 내가 뭘 놓치고 있니?