我可以根据某些条件调用相同的asynctask吗?
例如:
switch(item)
{
case 1:
dataCommunicator.execute();
break;
case 2:
dataComminicator.exwcute();
break;
.
.
.
}
class dataCommunicatoe extends AsyncTask{
.
.
.
.
.
}
答案 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。