我需要在java桌面应用程序(当没有点击按钮30分钟时)无效30分钟时实现注销。如何实现这个?有人有什么想法吗?在Java中是否已经有任何观察者了?
答案 0 :(得分:1)
实际上有两个部分:
对于第一部分,这主要取决于您如何定义“非活动”。一个选项:为“最后一个活动”设置一些时间字段,通过任何代码实现一个活动来更新。您可以使用每分钟触发一次的java.util.Timer并检查“上次活动”是否超过30分钟,然后将用户注销。
另一种选择是使用the approach from this question来实现一个可重置的计时器,然后只要有活动就可以重置。然后注销将在30分钟之后,而不是30-31分钟。
至于“退出用户”,这取决于您的操作系统。 Java本身没有这方面的API,但在大多数平台上,您只需使用Runtime.exec
或类似的方法调用操作系统二进制文件。另请注意,注销用户可能需要在某些平台上提升权限,因此请将此考虑在内。
最后,也许您可以解释一下潜在的问题是什么?例如,为什么不能将操作系统屏幕保护程序设置为在30分钟后锁定屏幕?那不是更容易吗?