繁体   English   中英

AsyncTask将数组传递给onProgressUpdate()

[英]AsyncTask Pass an array to onProgressUpdate()

我了解了一些指南,而且我知道如何像这样将许多参数传递给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];


    }

因为这确实行不通。 有什么办法吗? 请?

编码:

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);

您可以使用:

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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM