Android 可以多次调用同一个asynctask吗
我可以根据某些条件调用相同的asynctask吗 例如:Android 可以多次调用同一个asynctask吗,android,android-asynctask,Android,Android Asynctask,我可以根据某些条件调用相同的asynctask吗 例如: switch(item) { case 1: dataCommunicator.execute(); break; case 2: dataComminicator.exwcute(); break; . . . } class dataCommunicatoe extends AsyncTask{ . . . . . } 是的,一个好的方法是向自定义异步任
switch(item)
{
case 1:
dataCommunicator.execute();
break;
case 2:
dataComminicator.exwcute();
break;
.
.
.
}
class dataCommunicatoe extends AsyncTask{
.
.
.
.
.
}
是的,一个好的方法是向自定义异步任务传递一个接口,这样您就可以决定当它到达“OnPostExecute”时要做什么,并将同一个自定义异步任务重新用于多个片段/活动 是的,有可能: 通过传递如下参数,可以调用相同的异步任务:
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;
}
}
私有类AsyncTaskOperation扩展了AsyncTask
{
字符串paramObject=“”;
@凌驾
受保护的Void doInBackground(字符串…paramsObj){
paramObject=paramsObj[0];
if(“FETCHUSER”.equals(paramObject))
{
//获取用户的操作
}
else if(“VALIDATECREDENTIALS”.equals(paramObject))
{
//验证凭据的操作。
}
返回null;
}
}
我可以在asynctask中使用switch语句吗?可以,但您不必为此而强制使用.execute()。您可以使用自定义参数和构造函数创建自定义asyncTask,这通常更有用。检查此链接是否可以传递数据通信oE.execute(设备1);在doInBackground中的asyncTask中,我可以放置一个switch语句吗?表示int item=params[0];然后switch(item){..}不能使用字符串的switch语句。但是使用int
,这是可能的。