2014-11-13 81 views
-2

如何在2分鐘內沒有用戶輸入的情況下以java結束客戶端程序?請使用線程創建多個客戶 每個客戶端程序應該結束幫助 時,如果沒有在命令行(不使用GUI)客戶端Java時間延遲用戶輸入

+0

你到目前爲止嘗試過什麼?您是否檢查了https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html,https://docs.oracle.com/javase/7/docs/api/java的文檔/lang/Thread.html,https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html –

回答

0

輸入我想你可以有一個字段

long lastInputTime; 

表示上一次在程序中有任何輸入。在這之後,你的主循環過程中,做

long timeSinceLastInput = System.currentTimeMillis() - lastInputTime;  
long threshold = 120000; 

if (timeSinceLastInput >= threshold) { 
    System.exit(0); // You should prefer exiting gracefully here 
} 

,然後在正在處理用戶輸入的方法,只需添加

this.lastInputTime = System.currentTimeMillis(); 

更新的價值。

+0

,但如何獲得lastInputTime?真的很困惑這個 – programeer

+0

看看最後的代碼塊。我猜測你有某種掃描儀或InputReader來檢查用戶輸入。在該方法(或循環)的末尾添加最後一個代碼塊。這樣,只要程序讀取用戶的某種輸入,它就會更新lastInputTime字段。 – Zymus

+0

非常感謝。非常有幫助。但最後一個澄清..我想this.lastInputTime = System.currentTimeMillis();只有當用戶輸入一個輸入時纔會更新..但我如何檢查用戶是否輸入了輸入? – programeer