event - on click java
¿Cómo capturar el evento System.exit? (2)
Tengo una aplicación en java, en la que trato de asegurarme de que si alguien sale de los códigos System.exit () en el código, se debe llamar a un oyente para hacer algunas cosas, como registrar el mensaje y liberar los recursos ...
¿Cómo puedo implementarlo, cualquier sugerencia / enfoque es bienvenido.
La función Runtime.addShutdownHook(Thread thehook)
permite registrar un Runtime.addShutdownHook(Thread thehook)
en la máquina virtual de Java.
El gancho funciona como un hilo inicializado pero no iniciado, que la JVM invocará al salir. En caso de que registre más de un enlace, tenga en cuenta que el orden en que se llaman los enlaces no está definido.
El método Runtime.addShutdownHook
se puede usar para agregar un gancho de apagado, que básicamente es un Thread
no Thread
, que se ejecuta al apagar la Máquina Virtual de Java.
Sin embargo, este es un territorio que debe recorrerse con cuidado, ya que se realiza en un momento muy sensible del ciclo de vida de la JVM. De las especificaciones de la API para el método Runtime.addShutdownHook
:
Los ganchos de apagado se ejecutan en un momento delicado en el ciclo de vida de una máquina virtual y, por lo tanto, deben codificarse a la defensiva. Deben, en particular, escribirse para ser seguro para subprocesos y para evitar puntos muertos en la medida de lo posible.
En cualquier caso, asegúrese de leer un poco sobre cómo funcionan los ganchos de apagado, ya que probablemente no deberían abordarse sin una buena preparación. Asegúrese de leer cuidadosamente la especificación de la API para el método Runtime.addShutdownHook
.
Aquí hay un par de artículos que encontré en la búsqueda de información para esta respuesta:
Enganches de apagado : muestra un pequeño ejemplo de cómo se agrega un enganche de cierre para el registro en el cierre.
Diseño de la API de ganchos de apagado : aborda algunas decisiones de diseño de los ganchos de apagado en un estilo de pregunta y respuesta.