Pass для AsyncTask <String, Void, Void>

Я создаю приложение для Android, которое должно открыть экран сканера штрих-кода и сканировать штрих-код, а затем отправить строку штрих-кода в веб-сервис. Я прочитал часть чтения штрих-кода, отправив статические строки в 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, а затем выполнить execute_barcode_webservice ()

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

Вы также можете сделать:

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

В doInBackground параметры являются аргументом varargs , поэтому просто выполните:

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

Попробуй это..

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

Затем в doInBackground

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

Вы также можете передать массив строк так:

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

Вы также можете использовать Parameterobjects, см. Этот поток, ответ Дэвида Вассера: как вы можете передать несколько примитивных параметров AsyncTask?