Есть ли бэк-ключ по умолчанию (на устройстве) слушателя в Android?

StackOverflow https://stackoverflow.com/questions/2592037

Вопрос

У меня есть две мероприятия A и B. Когда я нажимаю кнопку в том, что будет отображать B. Когда я нажимаю кнопку в b, вернулся к A. I A. Установил метод переопределенияPendingTransition после того, как метод Finise (). Это работает должным образом. Но если текущая активность B. В то время я нажимаю кнопку «Назад по умолчанию» в устройстве. Это показывает право на левый переход, чтобы показать активность A.

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

РЕДАКТИРОВАТЬ:

Log.v(TAG, "back pressed");
finish();
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);
Это было полезно?

Решение

@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:

Используя задний ключ

Другие советы

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

@Override  
public void onBackPressed() {
    super.onBackPressed();   
    // Do extra stuff here
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK){
        //Do stuff
    }

    return super.onKeyDown(keyCode, event);
}

Больше информации на заднем клавише можно найти здесь: http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html.

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

@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
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top