it-swarm.com.de

Schaltfläche "Zurück" in android deaktivieren

Wie deaktiviere ich die Zurück-Schaltfläche in Android, während ich die Anwendung abmelde?

312
Grace

Überschreiben Sie die onBackPressed-Methode und tun Sie nichts, wenn Sie die Zurück-Taste am Gerät betätigen möchten.

@Override
public void onBackPressed() {
   if (!shouldAllowBack()) {
       doSomething();
   } else {
       super.onBackPressed();
   }
}
632
Gopinath

Wenn Sie nach einem Android API-Level bis zu 1.6 suchen.

@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);    
}

Und wenn Sie nach einem höheren API-Level 2.0 und höher suchen, wird dies großartig funktionieren

@Override
public void onBackPressed() {
    // Do Here what ever you want do on back press;
}

schreiben Sie diesen Code in Ihre Aktivität, um zu verhindern, dass die Zurück-Taste gedrückt wird

161
Javanator

Sie können dies auf einfache Weise tun Rufen Sie nicht super.onBackPressed () auf

Hinweis: - Tun Sie dies erst, wenn Sie einen triftigen Grund dazu haben.

@Override
public void onBackPressed() {
// super.onBackPressed();
// Not calling **super**, disables back button in current screen.
}
32
Iman Marashi

Überschreiben Sie einfach die onBackPressed () -Methode.

@Override
public void onBackPressed() { }
21
Pankaj kumar

Ich benutze es.............

 @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..............
}
13

Wenn Sie sicherstellen möchten, dass Ihre Android Client-Anwendung von einem Server abgemeldet ist, bevor Ihre Aktivität beendet wird,> melden Sie sich mit einem Dienst in einem eigenen Thread ab (das sollten Sie sowieso tun). .

Durch Deaktivieren der Zurück-Taste wird nichts für Sie gelöst. Sie haben immer noch das gleiche Problem, wenn der Benutzer beispielsweise einen Anruf erhält. Wenn ein Anruf eingeht, besteht für Ihre Aktivität ungefähr die gleiche Wahrscheinlichkeit, dass sie getötet wird, bevor sie vom Netzwerk eine zuverlässige Antwort erhält.

Aus diesem Grund sollten Sie einen Dienst in einem eigenen Thread auf die Antwort aus dem Netzwerk warten lassen und dann erneut versuchen, falls dies nicht gelingt. Es ist nicht nur viel unwahrscheinlicher, dass der Dienst Android beendet wird, bevor eine Antwort zurückkommt. Sollte er vor Abschluss des Auftrags tatsächlich beendet werden, kann er immer wieder von AlarmManager aktiviert werden, um es erneut zu versuchen.

9

Überschreiben Sie einfach die onBackPressed () -Methode und Sie müssen nicht die Superklasse der onBackPressed -Methode oder andere aufrufen.

@Override
public void onBackPressed()
{

}

Oder übergeben Sie Ihre aktuelle Aktivität an die onBackPressed () -Methode.

@Override
public void onBackPressed()
{
   startActivity(new Intent(this, myActivity.class));  
   finish();
}

Ersetzen Sie Ihren erforderlichen Aktivitätsnamen durch myActivity.

wenn Sie ein Fragment verwenden, rufen Sie zunächst die Methode callParentMethod () auf

public void callParentMethod(){
    context.onBackPressed(); // instead of context use getActivity or something related
}

rufen Sie dann die leere Methode auf

@Override
public void onBackPressed()
{

}
8
Zakaria Hossain

wenn Sie FragmentActivity verwenden. dann mach das so

rufen Sie zuerst Dies in Ihrem Fragment.

public void callParentMethod(){
    getActivity().onBackPressed();
}

rufen Sie dann die Methode onBackPressed neben Ihrer übergeordneten Klasse FragmentActivity auf.

@Override
public void onBackPressed() {
  //super.onBackPressed();
  //create a dialog to ask yes no question whether or not the user wants to exit
  ...
}
6
hash

Verwenden Sie einfach diesen Code: Wenn Sie die Deaktivierung rückwärts drücken möchten, verwenden Sie nicht super.OnBackPressed ();

@Override
public void onBackPressed() {

}
5
Seda T.

Wenn Sie Ihre App beim Abmelden deaktivieren möchten, können Sie ein nicht stornierbares Dialogfeld öffnen.

4
Ted Hopp

Sie können die onBackPressed() -Methode in Ihrer Aktivität überschreiben und den Aufruf der Superklasse entfernen.

@Override
public void onBackPressed() {
  //remove call to the super class
  //super.onBackPressed();
}
4
Aman Agarwal

Abgesehen von diesen beiden Methoden von der obigen Antwort.

onBackPressed () (API Level 5, Android 2.0)

onKeyDown () (API Level 1, Android 1.0)

Sie können auch das dispatchKeyEvent() (API Level 1, Android 1.0) wie folgt überschreiben:

dispatchKeyEvent() (API Level 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);
}
3
Kris Roofe

Sie müssen nur die Methode für die Zurück-Schaltfläche überschreiben. Sie können die Methode leer lassen, wenn Sie möchten, damit beim Drücken der Zurück-Taste nichts passiert. Bitte schauen Sie sich den folgenden Code an:

@Override
public void onBackPressed() 
{
   // Your Code Here. Leave empty if you want nothing to happen on back press.
}
3
Hammad Khan

Für mich hat das Überschreiben von onBackPressed() nicht funktioniert, aber das explizite Zeigen, mit welcher Aktivität es beginnen soll, hat gut funktioniert:

@Override
public void onBackPressed(){
  Intent intent = new Intent(this, ActivityYouWanToGoBack.class);
  startActivity(intent);
}
2
cheeroke

Versuche dies:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
 if (keyCode == KeyEvent.KEYCODE_BACK) {

   return true;
 }
   return super.onKeyDown(keyCode, event);    
}
1
mohamad sheikhi

entfernen Sie super.onBackPressed() aus public void onBackPressed() Arbeit großartig. Es wurde in Android 9 getestet

1
Golil

Deaktivieren Sie die Schaltfläche "Zurück" in Android

@Override
public void onBackPressed() {
    return;
}
0
Mahesh Bokhani