Pergunta

Gostaria de salvar as configurações do programa toda vez que o usuário sair do programa.Então, preciso de uma maneira de chamar uma função quando o usuário sair do programa.Como faço isso?

Estou usando Java 1.5.

Foi útil?

Solução

Você pode adicionar um gancho de desligamento ao seu aplicativo fazendo o seguinte:

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

Isso é basicamente equivalente a ter um bloco try {} finalmente {} em todo o programa e basicamente abrange o que está no bloco final.

Por favor, observe o ressalvas no entanto!

Outras dicas

Adicionando um gancho de desligamento addShutdownHook(java.lang.Thread) é provavelmente o que você procura.No entanto, existem problemas com essa abordagem:

  • você perderá as alterações se o programa for abortado de forma não controlada (ou seja,se for morto)
  • você perderá as alterações se houver erros (permissão negada, disco cheio, erros de rede)

Portanto, talvez seja melhor salvar as configurações imediatamente (possivelmente em um thread extra, para evitar tempos de espera).

Você está criando um aplicativo GUI independente (ou seja,Balanço)?

Nesse caso, você deve considerar como está fornecendo opções aos usuários sobre como sair do aplicativo.Ou seja, se houver um menu Arquivo, esperaria que houvesse um item de menu "Sair".Além disso, se o usuário fechar a última janela do aplicativo, também esperaria que ele saísse do aplicativo.Em ambos os casos, ele deve chamar o código que salva as preferências do usuário.

Usar Runtime.getRuntime().addShutdownHook() é certamente uma maneira de fazer isso - mas se você estiver escrevendo aplicativos Swing, recomendo fortemente que você dê uma olhada no JSR 296 (Swing Application Framework)

Aqui está um bom artigo sobre o básico: http://java.sun.com/developer/technicalArticles/javase/swingappfr/.

A implementação de referência JSR fornece o tipo de recursos que você procura em um nível de abstração mais alto do que adicionar ganchos de desligamento.

Aqui está a implementação de referência: https://appframework.dev.java.net/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top