Android 在asynctask中传递多个值并接收相应的结果
在我的Android应用程序中,我试图在启动屏幕期间传入一个asynctask多个值,因此它将返回与值一样多的结果Android 在asynctask中传递多个值并接收相应的结果,android,android-asynctask,Android,Android Asynctask,在我的Android应用程序中,我试图在启动屏幕期间传入一个asynctask多个值,因此它将返回与值一样多的结果 myasynctask task=new myasynctask() task.execute("value1","value2",etc...) 并返回用于其他活动result1、result2等 如何做到这一点?您可以将它们封装在DataTransferObject中 public class AsyncTaskDTO{ // implemnt your values pri
myasynctask task=new myasynctask()
task.execute("value1","value2",etc...)
并返回用于其他活动result1、result2等
如何做到这一点?您可以将它们封装在DataTransferObject中
public class AsyncTaskDTO{
// implemnt your values
private int foo;
private boolean bar;
// getter and setters.
}
您还可以传递映射、数组或列表
as ex:
AsyncTaskDto dto = new AsyncTaskDto();
dto.setFoo(2);
task.execute(dto);
List<String> values = new LinkedList<String>();
values.add("value1");
task.execute(values);
例如:
AsyncTaskDto dto=新的AsyncTaskDto();
dto.setFoo(2);
任务执行(dto);
列表值=新建LinkedList();
价值。添加(“价值1”);
任务。执行(值);
当您在代码中执行任务时,您将获得params[0]、parmas[1]等中的值,以便将相同数量的结果返回给onPostExecute。我建议使用数组或列表
private class DownloadFilesTask extends AsyncTask<URL, Integer, ArrayList<String>> {
protected Long doInBackground(URL... urls) {
ArrayList<String> result = new ArrayList<String>();
for (int i = 0; i < params.length; i++) {
value = params[i];
//do stuff
result.add(whatever);
}
return result;
}
protected void onPostExecute(ArrayList<String> result) {
//do stuff...
}
}
私有类下载文件任务扩展异步任务{
受保护的长doInBackground(URL…URL){
ArrayList结果=新建ArrayList();
对于(int i=0;i
从
private class DownloadFilesTask extends AsyncTask<URL, Integer, ArrayList<String>> {
protected Long doInBackground(URL... urls) {
ArrayList<String> result = new ArrayList<String>();
for (int i = 0; i < params.length; i++) {
value = params[i];
//do stuff
result.add(whatever);
}
return result;
}
protected void onPostExecute(ArrayList<String> result) {
//do stuff...
}
}