Comment désactiver le bouton de retour dans Android lors de la déconnexion de l'application?
Comment désactiver le bouton de retour dans Android lors de la déconnexion de l'application?
Réponses:
Remplacez la méthode onBackPressed et ne faites rien si vous vouliez gérer le bouton de retour sur l'appareil.
@Override
public void onBackPressed() {
if (shouldAllowBack()) {
super.onBackPressed();
} else {
doSomething();
}
}
Si vous recherchez un niveau d'api supérieur 2.0 et supérieur, cela fonctionnera très bien
@Override
public void onBackPressed() {
// Do Here what ever you want do on back press;
}
Si vous recherchez un niveau d'api android jusqu'à 1.6.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR
return true;
}
return super.onKeyDown(keyCode, event);
}
Écrivez le code ci-dessus dans votre activité pour éviter d'appuyer sur le bouton de retour
Vous pouvez le faire de cette manière simple N'appelez pas super.onBackPressed ()
@Override
public void onBackPressed() {
// super.onBackPressed();
// Not calling **super**, disables back button in current screen.
}
Substituez simplement la méthode onBackPressed () .
@Override
public void onBackPressed() { }
Je l'utilise .............
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK)
Toast.makeText(getApplicationContext(), "back press",
Toast.LENGTH_LONG).show();
return false;
// Disable back button..............
}
Si vous voulez vous assurer que votre application client Android est déconnectée d'un serveur avant que votre activité ne soit tuée -> déconnectez-vous avec un service sur son propre thread (c'est ce que vous êtes censé faire de toute façon).
La désactivation du bouton de retour ne résoudra rien pour vous. Vous aurez toujours le même problème lorsque l'utilisateur reçoit un appel téléphonique par exemple. Lorsqu'un appel téléphonique est reçu, votre activité a à peu près autant de chances de se faire tuer avant de recevoir une réponse fiable du réseau.
C'est pourquoi vous devez laisser un service attendre sur son propre thread la réponse du réseau, puis recommencer s'il échoue. Le service Android est non seulement beaucoup moins susceptible d'être tué avant d'avoir une réponse, mais s'il est vraiment tué avant de terminer le travail, il peut toujours être réactivé par AlarmManager pour réessayer.
Remplacez simplement la méthode onBackPressed () et pas besoin d'appeler la super classe de la méthode onBackPressed ou autres.
@Override
public void onBackPressed()
{
}
Ou passez votre activité actuelle dans la méthode onBackPressed ().
@Override
public void onBackPressed()
{
startActivity(new Intent(this, myActivity.class));
finish();
}
Remplacez votre nom d'activité requis par myActivity.
si vous utilisez un fragment, appelez tout d'abord la méthode callParentMethod ()
public void callParentMethod(){
context.onBackPressed(); // instead of context use getActivity or something related
}
puis appelez la méthode vide
@Override
public void onBackPressed()
{
}
si vous utilisez FragmentActivity
. alors fais comme ça
appelez d'abord ceci à l'intérieur de votre Fragment
.
public void callParentMethod(){
getActivity().onBackPressed();
}
puis appelez la onBackPressed
méthode à côté de votre FragmentActivity
classe parent .
@Override
public void onBackPressed() {
//super.onBackPressed();
//create a dialog to ask yes no question whether or not the user wants to exit
...
}
Vous pouvez remplacer la onBackPressed()
méthode dans votre activité et supprimer l'appel à la super classe.
@Override
public void onBackPressed() {
//remove call to the super class
//super.onBackPressed();
}
Vous avez juste besoin de remplacer la méthode du bouton retour. Vous pouvez laisser la méthode vide si vous le souhaitez afin que rien ne se produise lorsque vous appuyez sur le bouton de retour. Veuillez consulter le code ci-dessous:
@Override
public void onBackPressed()
{
// Your Code Here. Leave empty if you want nothing to happen on back press.
}
Mis à part ces deux méthodes de la réponse ci-dessus.
onBackPressed () (API niveau 5, Android 2.0)
onKeyDown () (API niveau 1, Android 1.0)
Vous pouvez également remplacer le dispatchKeyEvent()
(API niveau 1, Android 1.0) comme ceci,
dispatchKeyEvent()
(API niveau 1, Android 1.0)
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// TODO Auto-generated method stub
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.dispatchKeyEvent(event);
}
Désactiver le bouton arrière dans Android
@Override
public void onBackPressed() {
return;
}
Pour moi, le simple dépassement onBackPressed()
n'a pas fonctionné, mais il a été indiqué explicitement quelle activité il devait démarrer fonctionnait bien:
@Override
public void onBackPressed(){
Intent intent = new Intent(this, ActivityYouWanToGoBack.class);
startActivity(intent);
}
Essaye ça:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}