当Java应用程序处于非活动状态30分钟时出现问题

时间:2011-04-20 07:19:29

标签: java login logout

我需要在java桌面应用程序(当没有点击按钮30分钟时)无效30分钟时实现注销。如何实现这个?有人有什么想法吗?在Java中是否已经有任何观察者了?

1 个答案:

答案 0 :(得分:1)

实际上有两个部分:

  1. 检测不活动
  2. 退出用户
  3. 对于第一部分,这主要取决于您如何定义“非活动”。一个选项:为“最后一个活动”设置一些时间字段,通过任何代码实现一个活动来更新。您可以使用每分钟触发一次的java.util.Timer并检查“上次活动”是否超过30分钟,然后将用户注销。

    另一种选择是使用the approach from this question来实现一个可重置的计时器,然后只要有活动就可以重置。然后注销将在30分钟之后,而不是30-31分钟。

    至于“退出用户”,这取决于您的操作系统。 Java本身没有这方面的API,但在大多数平台上,您只需使用Runtime.exec或类似的方法调用操作系统二进制文件。另请注意,注销用户可能需要在某些平台上提升权限,因此请将此考虑在内。

    最后,也许您可​​以解释一下潜在的问题是什么?例如,为什么不能将操作系统屏幕保护程序设置为在30分钟后锁定屏幕?那不是更容易吗?