Я пытаюсь очистить ресурсы в своем приложении, прежде чем оно закроется, в соответствии с моим предыдущим вопросом ( Обнаружение закрытия приложения 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);вызов понимается и обрабатывается, приложение продолжает работать, просто без видимого графического интерфейса.Я думал о том, чтобы разместить вызов System.exit (0) только вне Thread, но тогда он выходит из области видимости, другие потоки или потоки не выполняются.
Есть ли еще какой-то дополнительный шаг, который я должен предпринять при подключении к событию ShutDown, чтобы убедиться, что все закрывается?
Спасибо за ваше время, я очень признателен.