onKeyUp не работает, когда сосредоточены потери активности - PullRequest
0 голосов
/ 03 февраля 2020

onKeyUp() не работает, когда сосредоточены потери активности. Но в то же время onBackPressed() работает. Я показываю тост в этих методах.

Как я могу использовать onKeyUp(), если активность не сфокусирована. Активность теряет фокус из-за диалога в приложении.

Пожалуйста, помогите!

  @Override
  public boolean onKeyUp(int keyCode, KeyEvent event) {
    Toast.makeText(getApplicationContext(), "? " + keyCode, Toast.LENGTH_LONG).show();
    if (keyCode == KeyEvent.KEYCODE_MENU) {
      Toast.makeText(getApplicationContext(), "? KEYCODE_MENU", Toast.LENGTH_LONG).show();
      getReactNativeHost().getReactInstanceManager().getCurrentRea‌​ctContext()
      .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
      .emit("onKeyPressed", keyCode);
    }
    return super.onKeyUp(keyCode, event);
  }

  @Override
  public void onBackPressed() {
    Toast.makeText(getApplicationContext(), "? onBackPressed", Toast.LENGTH_LONG).show();
  }

1 Ответ

0 голосов
/ 03 февраля 2020

попробуйте с этим без диалога

   @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_BACK:
                    Log.e("call","on key down");                   
                    return true;
          }
    }
    return super.onKeyDown(keyCode, event);
}

, если вы используете диалог, то в диалоге используйте это

     DialogInterface.OnKeyListener keylistener = new DialogInterface.OnKeyListener() {
                @Override
                public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent KEvent) {
                    int keyaction = KEvent.getAction();
                    if(keyaction == KeyEvent.ACTION_DOWN)
                    {
                        Toast.makeText(getApplicationContext(), "? " + keyCode, Toast.LENGTH_LONG).show();
                    }
                    return true;
                }
            };


        final AlertDialog dialogs  = alert.create();
            dialogs.show();
            dialogs.setOnKeyListener(keylistener);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...