将参数传递给AsyncTask <string,void,=“”void =“”> </string,>

时间:2013-06-13 17:44:56

标签: java android android-asynctask

我是构建Android应用程序,它应该打开条形码扫描仪屏幕并扫描条形码,然后将条形码字符串发送到web服务。我已经完成了条码阅读部分,将静态字符串发送到webservice。我正在异步地向webservice发送字符串。

这是我的代码

public class AsyncCallWS extends AsyncTask<String, Void, Void> {
    @Override
    protected Void doInBackground(String... params) {
        try {
            execute__barcode_webservice();
        } catch (Exception e) {
            // TODO: handle exception
        }

        return null;
    }

    @Override
    protected void onPostExecute(Void result) {

    }

    @Override
    protected void onPreExecute() {

    }

    @Override
    protected void onProgressUpdate(Void... values) {

    }
}

我需要将两个字符串传递给“execute__barcode_webservice()”

这就是我调用asynctask发送字符串的方式。

 AsyncCallWS soap_object = x.new AsyncCallWS();
 soap_object.execute();

如何将两个字符串传递给soap_object然后执行_barcode_webservice()

4 个答案:

答案 0 :(得分:4)

soap_object.execute(new String []{"StringOne","StringTwo"});

你也可以这样做:

soap_object.execute("StringOne","StringTwo");

doInBackground中,params是一个varargs参数,所以只需:

execute__barcode_webservice(params[0], params[1]);

答案 1 :(得分:2)

试试这个..

AsyncCallWS soap_object = x.new AsyncCallWS();

soap_object.execute(new String []{"String_one","String_two"});

然后在 doInBackground

 execute__barcode_webservice(params[0],params[1]);

答案 2 :(得分:0)

你也可以传入一个字符串数组:

new String[] info = ...
soap_object.execute(info);

答案 3 :(得分:0)

您也可以使用参数对象,请参阅此主题,回答David Wasser:How can you pass multiple primitive parameters to AsyncTask?