如何在AsyncTask中顺序执行多个任务(队列)

时间:2013-08-05 18:45:33

标签: android android-asynctask

我正在使用AsyncTask进行多个文件传输。 存储在arraylist中的不同文件路径,我的问题是如何发送队列中的所有文件(顺序)。

enter image description here

@Override
protected void onResume() {
  // TODO Auto-generated method stub
  super.onResume();
  /*
   * Some logic
   */
  new XYZAsyncTask (mString).executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
}
     

私有类XYZAsyncTask扩展了AsyncTask {

    ArrayList<String> mArray;

    @Override
    protected Void doInBackground(ArrayList... params) {
        /*
         * 
         * Some logic
         */
        checkSizeAndSendFile();
        return null;
    }

2 个答案:

答案 0 :(得分:4)

  

我正在使用AsyncTask进行多个文件传输

这不太可能是一个好主意。使用IntentService,以便您的流程可能足够长,以便完成文件传输。作为附带好处,IntentService有一个内置队列 - 只需对每次转移使用单独的startService()调用。

答案 1 :(得分:0)

也许我没有得到你的问题,但为什么不传递文件名并迭代它们,如下所示:

@Override
protected Void doInBackground(String... files) {
    for (String file : files) {
    // handle each individual files here
    }
}