我的java应用程序目前在系统托盘中有一个图标。但是,当系统托盘崩溃时(您可以通过杀死任务栏中的explorer.exe来模拟此情况),系统托盘返回后图标将消失。
当我检查系统托盘中图标的SystemTray.getSystemTray()。getTrayIcons()时,它总是显示我的TrayIcon仍然在系统托盘中,即使它崩溃并重新加载并且我的托盘图标在那里更长
目前我每隔15秒左右移除并添加一次我的图标,但有没有其他方法可以实现这一点,以便它不会一直消失并出现并让用户烦恼?
答案 0 :(得分:1)
只是一个猜测。
几秒钟内检查一次explorer.exe的pid。如果已更改,请取消注册托盘图标并重新注册。
答案 1 :(得分:0)
以防万一其他人偶然发现并想知道发生了什么,最后我不得不坚持删除并在几秒钟后添加图标,因为Windows不会更新JVM上托盘图标的状态。这当然不是修复它的最佳方法,但似乎没有更好的方法。