2011-04-20 21 views
0

我需要在Java桌面應用程序(30分鐘沒有單擊按鈕時)30分鐘不活動時執行註銷。如何實現這個?有人有任何想法嗎?在Java中是否有任何觀察者已經在使用它?當Java應用程序未激活30分鐘時註銷問題

+1

這是一個webapp? – 2011-04-20 07:21:46

+0

不,桌面應用程序 – Damir 2011-04-20 07:26:05

+0

多用戶桌面應用程序? – lobster1234 2011-04-20 07:26:14

回答

1

實際上,有兩個部分是:

  1. 檢測活動
  2. 註銷用戶

在第一部分,這主要取決於你如何定義「不活躍」。一個選擇:有一些時間字段用於「最後一次活動」,該活動通過任何實施活動的代碼進行更新。您可以使用java.util.Timer每分鐘觸發一次,並檢查「上次活動」是否超過30分鐘,然後將用戶註銷。

另一種選擇是使用the approach from this question來實現可復位的定時器,然後可以在有活動時重置。然後註銷將在30分鐘後,而不是30-31分鐘。

至於「註銷用戶」,這將取決於您的操作系統。 Java本身沒有API,但在大多數平臺上,您只需使用Runtime.exec或類似的函數調用操作系統二進制文件即可。另請注意,註銷用戶可能需要在某些平臺上提升特權,因此請考慮這一點。

最後,也許你可以解釋底層問題是什麼?爲什麼你不能例如在30分鐘後設置操作系統屏幕鎖定屏幕?那不是那麼容易嗎?

相關問題