La forma es utilizar el método addShutdownHook() de la clase Runtime. A este método le pasamos un Thread que se arrancará cuando se produzca el exit() o la terminación por Ctrl-C.
El siguiente trocito de código hará que se escriba "Adios" al terminarse nuestro programa
Thread hilo = new Thread (new Runnable ()
{
public void run ()
{
});{
System.out.println ("Adios");
}Runtime.getRuntime().addShutdownHook(hilo);
Lo de que queramos enterarnos cuando se pulsa Ctrl-C es entendible. ¿Para qué sirve enterarnos de un exit(), si lo hacemos nosotros?. Tiene bastante sentido en clases que formen parte de una librería más o menos reutilizable. Si hacemos una clase común/reutilizable que necesite hacer algo cuando termina el programa, ya no dependemos de que el que la use nos llame a algún método antes de hacer exit(). Nuestra propia clase puede usar este sistema para asegurarse de ser llamada al terminar el programa java.
No hay comentarios:
Publicar un comentario