我想知道是否可以为听众提供优先权。
我正在与套接字通信的程序上创建一个系统托盘。
一旦我调用 ServerSocket.accept() 方法,该方法将等待套接字连接,我的系统托盘就会停止侦听,直到接受套接字为止。
有没有办法解决这个问题?
系统托盘有调试开/关和关闭程序等选项,因此它必须与程序通信,并且在侦听中具有最高优先级。
提前谢谢!
编辑:这是一些代码。
public class Start {
/**
* Main method.
*
* @param args Arguments given in the commandline.
*/
public static void main(String[] args) {
if (args.length > 0) {
if (args[0].equals("-v")) {
Debugger.setDebug(true);
Debugger.showMessage("DEBUG: ON");
}
} else {
System.out.println("DEBUG: OFF");
Debugger.setDebug(false);
}
if (SystemTrayCreator.canRead()) {
SystemTrayCreator stc = new SystemTrayCreator();
new Thread(stc).start();
}
Connector c = new Connector();
new Thread(c).start();
}
}
public class Connector implements Runnable{
/** Creates a Connector-object.
*
*/
public Connector(){
}
static Timer t = new Timer(100, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
doJob();
t.stop();
}
});
/** Activates the connector.
*
*/
@Override
public void run() {
while (true) {
t.start();
}
}
public class SystemTrayCreator implements Runnable{
/**
* Creates a systemtray with an icon.
*
*/
@Override
public void run() {
//Check whether the SystemTray is supported
if (!SystemTray.isSupported()) {
Debugger.showMessage("SystemTray is not supported");
return;
}
希望这可以帮助。