Enregistrer un rappel de terminaison (register_atexit)
Déclaration
original_callback = register_atexit(name, callback)
Paramètres
- nom
Chaîne, obligatoire, qui identifie le rappel enregistré. L’utilisation du mêmenomremplace le rappel déjà enregistré. - rappel
Fonction, obligatoire, exécutée à la sortie du script ; veillez à ce qu’elle s’exécute rapidement et puisse être appelée plusieurs fois sans danger. Si sa valeur est nil, le rappel associé ànomest désenregistré.
Valeur de retour
- ancien_rappel
Fonction, ancien rappel remplacé par l’enregistrement de même nom ; renvoienils’il n’y avait aucun enregistrement précédent, et peut servir à restaurer l’ancien rappel.
Description
Le rappel enregistré par
register_atexitest exécuté à la sortie du script, y compris lorsque l’utilisateur termine le script avec les touches de volume, et est appelé avant le ramasse-miettes de Lua. Lorsque plusieurs rappels sont enregistrés avec desnomdifférents, leur ordre d’appel n’est pas garanti ; si un ordre précis est nécessaire, orchestrez-les dans un seul rappel. Si un rappel doit effectuer une opération longue, limitez vous-même sa durée, faute de quoi l’expérience de sortie peut être affectée. Cette fonction est disponible dans les versions postérieures à 20250705.
Exemple
register_atexit("cleanup", function()
sys.toast("脚本退出前清理资源")
sys.msleep(300)
end)
while true do
sys.toast("使用音量键尝试退出脚本\n" .. os.date("%Y-%m-%d %H:%M:%S"))
sys.msleep(1000)
end
Remarque : le code ci-dessus utilise les fonctions hors de ce chapitre sys.toast et sys.msleep.