我試圖清理應用程序中的資源,然後關閉它,從我以前的問題(Detecting When A Java Application Closes)開始我已經實現了以下代碼完美地執行清理操作。在調用System.exit(0)後應用程序繼續運行 - Java
//Intercept when the application closes
Runtime.getRuntime().addShutdownHook(new Thread()
{
@Override
public void run()
{
//Reclaim resources from MIDI usage
if(_midiInstance.CleanUp())
{
Logger.Add("Closed resources successfully on ShutDown");
}
else
{
Logger.Add("Failed to close all resources on ShutDown");
}
System.exit(0);
}
});
雖然System.exit(0);調用被理解和處理,應用程序繼續運行,只是沒有可見的GUI。我曾考慮過將System.exit(0)調用放在線程之外,但它超出了範圍,沒有任何其他線程或流正在運行。
當連接到ShutDown事件以確保一切關閉時,是否需要執行額外的步驟?
感謝您的時間,我非常感謝。
應用程序中的所有線程是否正確處理被中斷? – justkt 2011-04-20 18:56:33
應用程序中沒有其他線程,唯一的線程是鉤入Shutdown事件時聲明的線程。 – 2011-04-20 19:15:02