在我的Android应用程序中,我试图在启动画面期间传递一个asynctask多个值,因此它将返回与值一样多的结果。
myasynctask task=new myasynctask()
task.execute("value1","value2",etc...)
并返回在其他活动中使用result1,result2等
怎么做?
答案 0 :(得分:0)
您可以将它们封装在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);
答案 1 :(得分:0)
当您在代码中执行任务时,您将获得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...
}
}
来自https://developer.android.com/reference/android/os/AsyncTask.html
答案 2 :(得分:-1)
public interface myInterface{
public abstract void taskComplete(value1,value2... etc);
}