4

I have a floating window that is connected to a service and I want to minimize it when back button is pressed.

I have searched here on stackoverflow and they say its not possible to capture button presses on a service, most notably here: Can the a backbutton press be detected from a service?

But I know the Facebook messenger floating chatheads can do this. If you maximize a conversation and press the back button, it minimizes the conversation and it doesn't pass the back button press on what app you are currently in.

I have tried putting a KeyListener on the root floating view but it doesn't seem to catch any keypresses.

    floatingView.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            Log.e("motionevent",event.toString());
            return false;
        }
    });

    windowManager.addView(floatingView, params);

Suggestions on how FB Messenger does it?

Community
  • 1
  • 1
Marlon
  • 1,839
  • 2
  • 19
  • 42

0 Answers0