2012-06-05 62 views
0

對於每30秒記錄存儲在SQLite DB線程執行指定的時間。

我想30秒內執行一個線程張貼到我們的服務器的記錄數。

如果線程超過30秒則自行終止線程。

+0

give thread.sleep(3000);你想在哪裏睡覺你的代碼 –

回答

1

看看Handlers,特別是postDelayed(Runnable, long)方法。

這是指定一些代碼在未來運行的輕量級方法,在您的情況下,您可以將其設置爲30 seconds並檢查有問題的代碼是否仍在運行。

(例如,通過在代碼運行時將boolean設置爲true)並通過任何可用的方法殺死它。

3

使用定時器如下:

Timer t = new Timer(); 
    t.schedule(new TimerTask() { 

     @Override 
     public void run() {     //timer 

      System.out.println("done"); 
      this.cancel(); 

     } 
    }, 30000L); 
1
  1. 使用thread.sleep(30000);睡覺螺紋30秒。
  2. 在run()方法中實現用於將數據存儲在數據庫中的代碼。
  3. 您的存儲記錄數據完成後使用thread.interrupt();

注意:不要使用thread.stop();,因爲它是過時的方法。