可以多次调用相同的asynctask

时间:2014-08-25 03:38:12

标签: android android-asynctask

我可以根据某些条件调用相同的asynctask吗?

例如:

switch(item)
{
  case 1:
    dataCommunicator.execute();
    break;
  case 2:
    dataComminicator.exwcute();
   break;
   .
   .
   .
}

class dataCommunicatoe extends AsyncTask{
  .
  .
  .
  .
  . 
}

2 个答案:

答案 0 :(得分:1)

是的,有可能:

您可以通过传递如下参数来调用相同的异步任务:

if (someLogicIsTrue)
    new AsyncTaskOperation().execute("FETCHUSER");
else
    new AsyncTaskOperation().execute("VALIDATECREDENTIALS");

异步任务应该是:

private class AsyncTaskOperation extends AsyncTask <String, Void, Void>
{
        String paramObject = "";

        @Override
        protected Void doInBackground(String... paramsObj) {
        paramObject = paramsObj[0];

        if ("FETCHUSER".equals(paramObject))
        {
              // OPERATION FOR  FETCH USER
        }
        else if ("VALIDATECREDENTIALS".equals(paramObject))
       {
             // OPERATION FOR VALIDATE CREDENTIALS.
       }
       return null;
     }

}

答案 1 :(得分:0)

是的,一个好的方法是将接口传递给自定义的AsyncTask,这样你就可以决定当它到达&#34; OnPostExecute&#34;并为多个片段/活动重用相同的自定义AsyncTask。