Pregunta

Me gustaría guardar la configuración del programa cada vez que el usuario sale del programa.Entonces necesito una forma de llamar a una función cuando el usuario sale del programa.¿Cómo puedo hacer eso?

Estoy usando Java 1.5.

¿Fue útil?

Solución

Puede agregar un enlace de apagado a su aplicación haciendo lo siguiente:

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
    public void run() {
        // what you want to do
    }
}));

Esto es básicamente equivalente a tener un bloque try {} finalmente {} alrededor de todo el programa y básicamente abarca lo que hay en el bloque finalmente.

Por favor tenga en cuenta el advertencias ¡aunque!

Otros consejos

Agregar un gancho de apagado agregarShutdownHook(java.lang.Thread) Probablemente sea lo que buscas.Sin embargo, hay problemas con ese enfoque:

  • perderá los cambios si el programa se cancela de forma incontrolada (es decir,si lo matan)
  • perderá los cambios si hay errores (permiso denegado, disco lleno, errores de red)

Por lo tanto, sería mejor guardar la configuración inmediatamente (posiblemente en un hilo adicional, para evitar tiempos de espera).

¿Está creando una aplicación GUI independiente (es decir,Balancearse)?

Si es así, debe considerar cómo proporciona opciones a sus usuarios sobre cómo salir de la aplicación.Es decir, si va a haber un menú Archivo, esperaría que haya un elemento de menú "Salir".Además, si el usuario cierra la última ventana de la aplicación, también esperaría que salga de la aplicación.En ambos casos, debe llamar al código que se encarga de guardar las preferencias del usuario.

Usar Runtime.getRuntime().addShutdownHook() es sin duda una forma de hacer esto, pero si estás escribiendo aplicaciones Swing, te recomiendo encarecidamente que eches un vistazo a JSR 296 (Swing Application Framework)

Aquí hay un buen artículo sobre los conceptos básicos: http://java.sun.com/developer/technicalArticles/javase/swingappfr/.

La implementación de referencia de JSR proporciona el tipo de características que busca en un nivel de abstracción más alto que agregar enlaces de apagado.

Aquí está la implementación de referencia: https://appframework.dev.java.net/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top