3

我的 java 应用程序当前在系统托盘中有一个图标。但是,当系统托盘崩溃时(您可以通过在任务栏中杀死 explorer.exe 来模拟这种情况),系统托盘返回后图标会消失。

当我检查 SystemTray.getSystemTray().getTrayIcons() 以获取系统托盘中的图标时,它始终显示我的 TrayIcon 仍在系统托盘中,即使它崩溃并重新加载并且我的托盘图标在那里更长。

目前我每 15 秒左右删除和添加一次我的图标,但是有没有其他方法可以实现它,这样它就不会继续消失和出现并让用户烦恼?

4

2 回答 2

1

只是一个猜测。

每隔几秒钟检查一次 explorer.exe 的 pid。如果它已更改,请取消注册您的托盘图标并重新注册。

于 2011-10-27T23:48:25.213 回答
0

以防万一其他人偶然发现并想知道发生了什么,最后我不得不在几秒钟后坚持删除和添加图标,因为 Windows 不会更新 JVM 托盘图标的状态......自然不是修复它的最佳方法,但似乎没有更好的方法。

于 2012-03-19T12:17:35.220 回答