Wie kann man die Zurück-Taste in Android deaktivieren, während man sich aus der Anwendung abmeldet?
Antworten
Zu viele Anzeigen?Überschreiben Sie einfach die onBackPressed()-Methode, und Sie müssen nicht die Superklasse der onBackPressed-Methode oder andere aufrufen.
@Override
public void onBackPressed()
{
}
Oder Sie übergeben Ihre aktuelle Aktivität an die Methode onBackPressed().
@Override
public void onBackPressed()
{
startActivity(new Intent(this, myActivity.class));
finish();
}
Ersetzen Sie den Namen Ihrer gewünschten Aktivität durch myActivity.
wenn Sie 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
@Override
public void onBackPressed()
{
}
Wenn Sie sicherstellen wollen, dass Ihre Android-Client-Anwendung von einem Server abgemeldet wird, bevor Ihre Aktivität beendet wird --> melden Sie sich mit einem Dienst auf seinem eigenen Thread ab (das ist, was Sie sowieso tun sollten).
Die Deaktivierung der Schaltfläche "Zurück" bringt keine Lösung für Sie. Sie werden immer noch das gleiche Problem haben, wenn der Benutzer zum Beispiel einen Anruf erhält. Wenn ein Anruf eingeht, ist die Wahrscheinlichkeit, dass Ihre Aktivität abgebrochen wird, bevor sie eine zuverlässige Antwort vom Netz erhält, etwa gleich groß.
Deshalb sollten Sie einen Dienst in seinem eigenen Thread auf die Antwort aus dem Netz warten lassen und ihn dann erneut versuchen lassen, wenn er nicht erfolgreich ist. Es ist nicht nur viel unwahrscheinlicher, dass der Android-Dienst abgeschaltet wird, bevor er eine Antwort erhält, sondern sollte er wirklich abgeschaltet werden, bevor er seine Arbeit beendet hat, kann er jederzeit von AlarmManager wiederbelebt werden, um es erneut zu versuchen.
Wenn Sie FragmentActivity
. dann so vorgehen
rufen Sie zunächst This innerhalb Ihrer Fragment
.
public void callParentMethod(){
getActivity().onBackPressed();
}
und dann Aufruf onBackPressed
Methode auf der Seite Ihres Elternteils FragmentActivity
Klasse.
@Override
public void onBackPressed() {
//super.onBackPressed();
//create a dialog to ask yes no question whether or not the user wants to exit
...
}