【发布时间】:2019-05-22 20:54:56
【问题描述】:
我正在尝试在一段时间不活动后关闭 SWT 应用程序。我在计算不活动期时遇到了困难。我尝试过的所有方法都只是在指定的时间后关闭应用程序,无论我是否仍在处理应用程序。
下面是我尝试过的代码
Timer timer = new Timer();
display.asyncExec(new Runnable(){
public void run() {
while(!shell.isDisposed()){
if (!display.readAndDispatch()){ //if the system is idle
timer.schedule(new TimerTask() { //schedule timer which will trigger after 1min.
@Override
public void run() {
logout();
}
}, 60000);
}
else{ // reschedule the timer
timer.cancel();
Timer timer = new Timer();
}
}
}
});
即使用户正在执行某些操作,我也只能在 1 分钟后注销。有没有办法可以检查 SWT 中的非活动时间?
【问题讨论】:
-
也许使用
Display.addFilter来收听您认为是“活动”的各种事件并保持最后的活动时间。