2013-10-09 76 views
1

我試過這兩個鏈接:Starting AsyncTask recursively after a gap of 5 minutesNeed advice new AsyncTask recursive calling如何在android中遞歸調用AsyncTask?

但他們沒有解決我的問題。 我想在每隔10秒後遞歸地使用asynctask。 iam創建一個應用程序,在該應用程序中,只要滿足某些條件,就會顯示一些對話框,我需要更改該內容,因爲我正在嘗試使用線程和處理程序的組合來調用asynctask。

在此先感謝!

+1

請出示您的代碼,以便它可以進行審查,並有人能的基礎上你幫助你失蹤了。 – bland

+0

您不能(也不應該)「遞歸地調用AsyncTask」。也許你只是選擇了錯誤的單詞?你想達到什麼目的? – 323go

+0

@ 323go抱歉,球員的答覆已晚.....我認爲你的權利,我不應該調用一個AsyncTask遞歸....我想彈出一個對話框中的一些來自url的報警數據,我們可以解僱對話框.....我想在10秒後檢查網址,找到新的報警數據,當我收到新數據時彈出窗口會再次出現。那就是我想要做的。 – Lacoste1112

回答

2

重複此過程每1000毫秒:

Handler handler = new Handler(); 
     Thread th = new Thread() { 
      public void run() { 

       // Asynctask 

       // delay 
       handler.postDelayed(this, 1000); 

       } 

      } 
     }; 
     th.start(); 

隨着handler.removeCallbacks(th)你可以阻止它。

+0

新手開發者的最佳答案 –

0

創建一個runnable,您可以一次又一次啓動asynctask,並通過調用handler.postDelayed(repeatingTask,1000)第一次啓動任務;

private Runnable repeatingTask = new Runnable() { 
    public void run() { 
     new MyAsyncTask().execute("my String"); 

         handler.postDelayed(this, 1000); 
    } 
}; 

這樣runnable會一再重複。希望這可以幫助你。

0
public void recur() 
{ 
private Runnable repeat = new Runnable() { 
    public void run() { 
     new AsycnCaller().execute(); 

         handler.postDelayed(this, 10000); 
    } 
}; 

} 

呼叫您要啓動此功能稱這種現象asyntask的postexecution

+0

我試過這個,但它沒有幫助。 – Lacoste1112