Ich habe versucht, ein "Willst du beenden?" Art des Dialogfelds, wenn der Benutzer versucht, eine Aktivität zu beenden.
Ich kann jedoch die entsprechenden API-Hooks nicht finden. Activity.onUserLeaveHint()
Anfangs sah es vielversprechend aus, aber ich kann keinen Weg finden, die Aktivität am Ende zu hindern.
Antworten:
In Android 2.0+ würde dies so aussehen:
In früheren Versionen würde es so aussehen:
quelle
quelle
CustomTabActivity.super.onBackPressed
finish()
Code durch zu ersetzensuper.onBackPressed()
?MyActivity.super.onBackPressed();
und es funktioniert gut für mich. Es erscheint auch am logischsten, die Methode aufzurufen, die Sie überschreiben, wenn Sie das Standardverhalten wünschen, wenn der Benutzer auf "Nein" tippt.Habe @ user919216 Code geändert .. und ihn mit WebView kompatibel gemacht
quelle
Ich würde es vorziehen, mit doppeltem Tippen auf die Zurück-Schaltfläche zu beenden, als mit einem Dialogfeld zum Beenden.
In dieser Lösung wird beim ersten Zurückgehen ein Toast angezeigt, der darauf hinweist, dass durch erneutes Drücken der App die App geschlossen wird. In diesem Beispiel weniger als 4 Sekunden.
Token von: http://www.androiduipatterns.com/2011/03/back-button-behavior.html
quelle
Wenn Sie nicht sicher sind, ob der Aufruf von "Zurück" die App beendet oder den Benutzer zu einer anderen Aktivität führt, können Sie die obigen Antworten mit einem Häkchen versehen: isTaskRoot (). Dies kann passieren, wenn Ihre Hauptaktivität mehrmals zum Backstack hinzugefügt werden kann oder wenn Sie den Backstack-Verlauf bearbeiten.
quelle
Verwenden von Lambda:
Sie müssen auch die Levelsprache festlegen, um Java 8 in Ihrem gradle.build zu unterstützen:
quelle
In China bestätigen die meisten Apps den Ausstieg durch "zweimal klicken":
quelle
Entfernen Sie zuerst
super.onBackPressed();
von deronbackPressed()
Methode als und unter dem Code:quelle
Ich mag einen @ GLee-Ansatz und verwende ihn mit Fragmenten wie unten.
Dialog mit Fragment:
quelle
quelle
Eine andere Alternative wäre, ein
Toast
/Snackbar
beim ersten Zurückdrücken anzuzeigen und zu bitten, erneut auf Beenden zu drücken , was viel weniger aufdringlich ist als das Anzeigen einesAlertDialog
, um zu bestätigen, ob der Benutzer die App beenden möchte.Sie können das verwenden
DoubleBackPress Android Library
, um dies mit ein paar Codezeilen zu erreichen. Beispiel GIF mit ähnlichem Verhalten.Fügen Sie Ihrer Anwendung zunächst die Abhängigkeit hinzu:
Implementieren Sie als Nächstes in Ihrer Aktivität das erforderliche Verhalten.
Stellen Sie dies schließlich als Verhalten beim Zurückdrücken ein.
quelle