2015-05-01 127 views
0

我構建了一個返回特定值的AsyncTask類。此值經常更改,因此,我需要多次調用AsyncTask類以顯示更新的值。每三秒執行一次AsyncTask

我正在從AsyncTask獲得不同的類結果。

 try { 
     output = new task().execute(getconversationid).get(); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (ExecutionException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

時再從更新的AsyncTask的結果,我把我的其他類更新的一切。

 private void call() { 

    new GetContacts().execute(id); 

    } 

    ... 

    mobilemessages = contacts.length(); 

    ... 

    myNum = Integer.parseInt(output); 

    if(myNum != mobilemessages) { 
     call(); 
    } 

我的問題是我如何設置一個計時器或處理程序來更新我的類呼叫(任務),每三秒?

謝謝。

+2

我不會這樣處理它。你爲什麼不創建一個後臺線程來更新你的值,然後發送給一個處理程序來在需要時更新你的UI? – zgc7009

+0

我沒有想到的是,它容易得多,謝謝 –

+0

在這裏你去: http://stackoverflow.com/questions/2258066/java-run-a-function-after-a-specific-秒數 – ScarletMerlin

回答

0

使用Thread.sleep(3000); 3000以毫秒爲單位。

Try{ 

Thread.sleep(3000); 

}catch(Exception ex){ 
} 
+0

這與AsyncTask –

+0

不搭配,除非與'publishProgress'結合使用(但建議在專用執行程序上運行asynctask,以避免阻塞所有其他asynctasks) – njzk2

+0

它會導致延遲 –

相關問題