Android - onBackPressed() ne fonctionne pas

J'ai une demande à la construction contre Android 2.1 et je veux remplacer le bouton de retour.

J'ai suivi l'exemple ici:

http://android-developers.blogspot.com/2009_12_01_archive.html

Et mon code est comme suit:


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)  {
        if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5
                && keyCode == KeyEvent.KEYCODE_BACK
                && event.getRepeatCount() == 0) {
            Log.d("CDA", "onKeyDown Called");
            onBackPressed();
        }

        return true;
    }

    @Override
    public void onBackPressed() {
    Log.d("CDA", "onBackPressed Called");
        Intent setIntent = new Intent(Intent.ACTION_MAIN);
        setIntent.addCategory(Intent.CATEGORY_HOME);
        setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(setIntent); 

        return;
    }   

Il fonctionne sur pre 2.x appareils, mais ne fonctionne pas sur un Héros avec la mise à jour 2.1-1 et un Nexus One avec 2.2.

Est-il somwthing je suis absent à partir de l'exemple? Ou peut-on rappeler pourquoi il ne fonctionne pas?

Je n'ai pas le même que le bouton soit enfoncé dans le logcat.

OriginalL'auteur Donal Rafferty | 2010-08-24