62,614
社区成员
发帖
与我相关
我的任务
分享
public void onMessage(CommonMsg msg) {
if (isSelfCalled) {
// 上个更新请求为己方发出的
isSelfCalled = false;
return;
}
JOptionPane.showMessageDialog(this, "其他人修改了数据");
// 再查询
querySettingData();
}
上面代码没有格式,整理了一下. isSelfCalled 是全局变量,用来记录上一个引起推送的消息是不是自己发出的
大概逻辑是,多个用户同时打开这一画面的时候,一个人修改了数据并提交,其他人都会收到推送,然后进行再查询(querySettingData).
onMessage为底层提供的接口,订阅以接收广播.
有没有其他的不会阻塞的弹窗方式?
如果做一个延时处理(如下),会不会有什么风险?
public void onMessage(CommonMsg msg) {
if (isSelfCalled) {
// 上个更新请求为己方发出的
isSelfCalled = false;
return;
}
if (delayFlg) {
return;
} else {
showMsgView("其他人修改了系统参数!");
delayFlg = true;
Thread thread = new Thread() {
@Override
public void run() {
super.run();
try {
Thread.sleep(10);
delayFlg = false;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
thread.start();
}
querySettingData();
}