2016-02-27 152 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

其对更新对象的坐标运动。这不是繁重的数据传输,只是一个字符串。 –