Beendigungsanfragen bearbeiten

Beenden

Die meisten Plattformen haben die Möglichkeit, die Anwendung zum Beenden aufzufordern. Auf Desktops erfolgt dies normalerweise mit dem "x" Symbol in der Titelleiste des Fensters. Unter Android wird die Zurück-Taste zum beenden verwendet, wenn man auf dem Hauptbildschirm ist (oder ansonsten zurückzukehren).

Bearbeitung der Benachrichtigung

Auf Desktop-Plattformen verfügt die MainLoop über eine spezielle MainLoop.NOTIFICATION_WM_QUIT_REQUEST-Benachrichtigung, die bei einer Beendigungsanforderung an alle Nodes gesendet wird.

Unter Android wird stattdessen MainLoop.NOTIFICATION_WM_GO_BACK_REQUEST gesendet. Durch Drücken der Zurück-Taste wird die Anwendung beendet, wenn in den Projekteinstellungen Anwendung> Konfiguration> Bei Zurück beenden aktiviert ist (Standardeinstellung).

Bemerkung

MainLoop.NOTIFICATION_WM_GO_BACK_REQUEST wird unter iOS nicht unterstützt, da iOS-Geräte keine physische Zurück-Schaltfläche haben.

Die Behandlung der Benachrichtigung erfolgt wie folgt (bei jedem Node):

func _notification(what):
    if what == MainLoop.NOTIFICATION_WM_QUIT_REQUEST:
        get_tree().quit() # default behavior
public override void _Notification(int what)
{
    if (what == MainLoop.NotificationWmQuitRequest)
        GetTree().Quit(); // default behavior
}

Bei der Entwicklung mobiler Apps ist das Beenden nur dann erwünscht, wenn sich der Benutzer auf dem Hauptbildschirm befindet, sodass das Verhalten geändert werden kann.

Es ist wichtig zu beachten, dass Godot-Apps standardmäßig das eingebaute Verhalten haben sich bei einer Beendigungsanforderung zu beenden. Dies kann geändert werden:

get_tree().set_auto_accept_quit(false)
GetTree().SetAutoAcceptQuit(false);