Domanda

Supponiamo di avere un'applet in esecuzione all'interno di una pagina in un browser. Cosa succede quando il browser viene chiuso dall'utente?

L'applet viene notificata in modo da poter eseguire una sorta di azione ravvicinata sul lato (chiusura delle connessioni aperte su un server, pulizia delle variabili statiche, ...)?

Inoltre, suppongo che lo stesso comportamento si applicherebbe per un aggiornamento della pagina o per la navigazione della pagina (invece della chiusura del browser). Il browser rimane aperto ma l'applet è sparito. Anche se quando chiudi il browser chiudi anche la JVM, quindi non sono sicuro a questo punto.

Grazie, JB

È stato utile?

Soluzione

Sì, il metodo destroy () dovrebbe essere chiamato prima che il browser scarichi l'oggetto .

destroy () è l'ultimo di quattro " metodi del ciclo di vita " dell'applet Java (gli altri sono init () , start () e stop () ). In realtà vengono chiamati in momenti diversi a seconda del browser e macchina virtuale . Se desideri sapere esattamente quando viene chiamato ciascuno, implementa ciascun metodo all'interno dell'applet e System.out alcuni feedback.

Idealmente, destroy () dovrebbe essere chiamato dall'ambiente e dovrebbe essere chiamato solo una volta. Se sembra che non si chiami distruggere (), è possibile dichiarare un metodo finalize () pubblico, che chiama distruggere. Potresti anche provare a chiamare destroy () da javascript mentre l'oggetto window si scarica, ma di nuovo, assicurati di non chiamare inutilmente (() inutilmente.

public void finalize () {
    destroy();
}

Altri suggerimenti

La maggior parte delle volte verrà chiamata distruzione, ma non ha abbastanza tempo per eseguire le attività richieste in caso di chiusura della finestra.

Prende abbastanza tempo durante l'aggiornamento, navigando con Backword < - e Avanti - >

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top