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
Vous devez vous connecter pour publier un commentaire.
Êtes-vous à l'aide de onKeyUp()?
Utiliser juste onKeyDown() dans Android 1.x ou onBackPressed() dans Android 2.x
OriginalL'auteur Elenasys
Rapide recherche suggère que vous devriez placer à l'Arrière d'interception pendant onKeyUp(): http://developer.android.com/sdk/android-2.0.html. Il vaut la peine d'essayer.
Le code suivant est directement à partir du site:
OriginalL'auteur gary
Vous devriez appeler le parent constructeurs.
Dans
onKeyDown()
appel de la méthodeet dans
onBackPressed()
OriginalL'auteur ashakirov