AsyncTask将数组传递给onProgressUpdate()

时间:2015-12-09 15:21:47

标签: java android android-asynctask

我通过了一些指南,我知道,如何将许多参数传递到onProgressUpdate这样

@Override
protected void doInBackground(Void... params){
publishProgress("a","b");
}

@Override 
protected void onProgressUpdate(String... params){

String passed1 = params[0];
String passed1 = params[1];


}

现在。是否有可能发送数组?

喜欢这个

@Override
    protected void doInBackground(Void... params){
     String[] values = new String[2];
     values[0]="c";
     values[1]="d";
    publishProgress("a","b",values);
    }

    @Override 
    protected void onProgressUpdate(String... params){

    String passed1 = params[0];
    String passed1 = params[1];
    String passed3 = params[3][0];
    String passed3 = params[3][1];


    }

因为这不起作用。 有解决方案吗请?

2 个答案:

答案 0 :(得分:3)

代码:

publishProgress("a","b",values);

预计

的签名
protected void onProgressUpdate(String, String, String[])

要传递数组,您需要所有值:

String[] values = new String[4];
values[0]="a";
values[1]="b";
values[2]="c";
values[3]="d";
publishProgress(values);

答案 1 :(得分:1)

您可以使用:

int var1,var2,var3;
publishProgress(var1,var2,var3,.....);

并在onProgressUpdate:

protected void onProgressUpdate(Integer... values){
int a = values[0];
int b = values[1];
int c = values[.....].......

可以与任何数据类型一起使用,您需要在第二个参数中提及onProgressUpdate

public class MyTask extends AsyncTask<Void,**Integer**,String>