我们编写了一个java代理,它使用java.awt.TrayIcon提供某种GUI。当我们使用这种代理时,例如Tomcat,我们有以下问题:
现在问题是,我们该怎么做才能让应用程序关闭?是否可以制作AWT事件调度线程守护程序?代理商是否有关机挂钩?还有什么吗?
答案 0 :(得分:1)
为了完整起见,以下是我如何解决这个问题:
我已经使用该作业启动了另一个守护程序线程,该程序会定期检查可显示的AWT组件。如果只剩下其中一个,那就是我的系统托盘图标,那么我将其删除。这允许AWT子系统退出,从而导致整个应用程序正常退出。
答案 1 :(得分:0)
您可以尝试添加一个调用
的关闭挂钩(Runtime.getRuntime().addShutdownHook()
)
SystemTray.getSystemTray( ).remove( trayIcon );