2016-02-27 121 views
0

我正在開發Android應用程序,我想在加載特定頁面調用一個的AsyncTask。我需要一遍又一遍地調用AsyncTask。我對android開發很陌生,如果我錯過了解釋中的任何內容,請告訴我。呼叫異步任務反覆

+0

我想你應該查找服務的Android文檔。你可以讓它反覆運行。讓我知道它的工作;-) – Markinson

回答

0

可以使用接口來解決這個問題。

接口文件LoadingResultInterface.java:

public interface LoadingResultInterface { 
    void onLoadingResult(int errorCode); 
} 

活動代碼:

public class SomeActivity extends AppCompatActivity 
     implements LoadingResultInterface { 

    @Override 
    public void onLoadingResult(int errorCode) { 
     if (errorCode != xxxxx) 
      new SomeLoader(this).execute(); 
    } 
} 

的AsyncTask代碼:

private class SomeLoader extends AsyncTask<Void, Void, Integer> { 

    private Activity activity; 
    LoadingResultInterface loadingListener; 

    public SomeLoader(Activity activity) { 
     this.activity = activity; 
     loadingListener = (LoadingResultInterface)activity; 
    } 

    protected final Integer doInBackground(Void... params) { 
     // int result = someJob(); 
     return result; 
    } 

    @Override 
    protected void onPostExecute(Integer result) { 
     super.onPostExecute(result); 
     loadingListener.onLoadingResult(result); 
    } 
} 
+0

精美的作品。謝謝 –

0

它不是一件好事,讓一些「再次遍地跑」 - 你可能實現某種投票的,你不應該的原因有無數的移動設備上做(最重要的是電池壽命並通過移動網絡傳輸過多的數據)。

因此,嘗試評估您的業務標準,認爲緩存或「我怎麼經常這樣做需要新的數據?」並且如果實施雲到設備消息傳遞可能是您的投票需求的答案。

+0

其對更新對象的座標運動。這不是繁重的數據傳輸,只是一個字符串。 –