Подтвердить что ты не робот

Есть ли в андроиде прослушиватель по умолчанию (на устройстве) по умолчанию?

У меня есть два действия A и B., когда я нажимаю кнопку в A, которая отображает B., когда я нажимаю кнопку в B, которая возвращается к A. Я установил метод overridePendingTransition после метода finish(). он работает правильно. но в случае, если текущее действие - B., в это время я нажимаю кнопку возврата по умолчанию на устройстве. он показывает переход с права на левый, чтобы показать активность A.

Как я могу прослушивать эту кнопку по умолчанию на устройстве?

EDIT:

Log.v(TAG, "back pressed");
finish();
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);
4b9b3361

Ответ 1

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

Следующая ссылка - это подробное объяснение того, как обрабатывать ключевые события, написанные самими разработчиками Android:

Использование задней клавиши

Ответ 2

Для Android 2.0 и более поздних версий в классе Activity есть определенный метод:

@Override  
public void onBackPressed() {
    super.onBackPressed();   
    // Do extra stuff here
}

Ответ 3

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK){
        //Do stuff
    }

    return super.onKeyDown(keyCode, event);
}

Ответ 5

Я использую этот код для активности с медиаплеером. Мне нужно было остановить воспроизведение, когда пользователь нажал кнопку "Назад", но все же сможет вернуться к предыдущему действию.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        try{
            mp.stop(); //this line stops the player
            return super.onKeyDown(keyCode, event);//this line does the rest 
        }
        catch(IllegalStateException e){
            e.printStackTrace();
        }
        return true;
    }

    return super.onKeyDown(keyCode, event); //handles other keys
}