web-dev-qa-db-fra.com

y a-t-il un écouteur de touche de retour (sur l'appareil) par défaut dans Android?

J'ai deux activités A et B. Quand je clique sur le bouton dans A, B. apparaît lorsque je clique sur le Bouton dans B, il revient à A. J'avais défini la méthode overridePendingTransition après la méthode finish (). cela fonctionne correctement. mais au cas où l'activité en cours est B., à ce moment-là, je clique sur le bouton Précédent par défaut du périphérique. il montre la transition de droite à gauche pour montrer l'activité A.

Comment puis-je écouter cette touche de retour par défaut sur l'appareil?

MODIFIER:

Log.v(TAG, "back pressed");
finish();
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);
19
Praveen
@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);
}

Le lien suivant contient une explication détaillée sur la gestion des événements clés écrits par les développeurs Android eux-mêmes:

Utilisation de la touche de retour

39
Jamie Keeling

Pour Android 2.0 et versions ultérieures, il existe une méthode spécifique dans la classe d'activité: 

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

    return super.onKeyDown(keyCode, event);
}
2
YaW

Vous trouverez plus d’informations sur les éléments clés à l’arrière: http://Android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

0
Moss

J'utilise ce code lors d'une activité avec un lecteur multimédia. Je devais arrêter la lecture lorsque l'utilisateur appuyait sur le bouton Retour, mais je pouvais toujours revenir à l'activité précédente.

@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
}
0
NickOpris