Я сделал общий класс, который расширяет Asynctask. Всякий раз, когда я вызываю Asynctask, у меня есть 4 строки, которые я должен передать как параметр в asynctask, который я могу продолжить в зависимости от строк. Можно ли отправить 4 строки в asynctask?Передача аргументов Asyntask
ответ
Вы можете передать их в конструкторе AsyncTask, как показано ниже:
public class ProcessTask extends AsyncTask<Void, Integer, String>{
String s1, s2, s3, s4;
public ProcessTask(String str1, String str2, String str3, String str4) {
// TODO Auto-generated constructor stub
s1 = str1;
s2 = str2;
s3 = str3;
s4 = str4;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
//do something with strings
super.onPreExecute();
}
@Override
protected String doInBackground(Void... params) {
// TODO Auto-generated method stub
//your code
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
}
}
Вызов как:
ProcessTask p =new ProcessTask(s1, s2, s3, s4);
p.execute();
Надеется, что это помогает.
Один из способов: вы можете получить переменную, используя конструктор, передать переменные при создании объекта. , например,
public class SapleAsynctask extends AsyncTask<Void, Void, Boolean> {
public SapleAsynctask(String s1, String s2, String s3, String s4) {
this.s1 = s1;
.
.
.
}
}
Если вы хотите, чтобы получить данные для doInBackground()
вы можете передать аргумент при вызове asynctask.excecute([])
для этого,
public class SapleAsynctask extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
S1 = params[0];
s2 = params[1];
.
.
return false;
}
}
И вызовите AsyncTask с помощью
SapleAsynctask sapleAsynctask = new SapleAsynctask();
sapleAsynctask .excecute(new String[] {"s1", "s2", "s3", "s4"});
Шаг 1. В ваших AsyncTask в doInBackground метод синтаксического анализа Params как то:
public class MyAsyncTask extends AsyncTask<String, Void, Void> {
// ...
@Override
protected String doInBackground(String... params) {
String s1 = params[0];
String s2 = params[1];
// ...
return null;
}
Шаг 2. При выполнении AsyncTask - передать String [] Массив:
myAsyncTask.execute(new String[] {s1, s2, s3, s4});
Дополнительная Информация. Иногда бывает, что вам нужно передать объекты параметров разных типов. Для достижения этой цели необходимо передать Object [] массив как это:
myAsyncTask.execute(new Object[] {myObj1, s2, myObj3, s4});
и разобрать этот массив в вашем методе doInBackground AsyncTask как это:
public class MyAsyncTask extends AsyncTask<String, Void, Void> {
// ...
@Override
protected String doInBackground(Object... params) {
MyObject myObj1 = (MyObject) params[0];
String s2 = (String) params[1];
// ...
return null;
}
- 1. Передача данных в AsynTask
- 2. Передача аргументов
- 3. Передача аргументов в теме
- 4. Передача аргументов консольного приложения
- 5. Передача аргументов Jquery
- 6. Передача переменных аргументов делегата
- 7. Javascript - Передача аргументов функции
- 8. Передача аргументов в os.system
- 9. C++ Передача аргументов функции
- 10. Передача списка аргументов (C++)
- 11. Передача нескольких аргументов AsyncTask
- 12. Тернарная передача аргументов
- 13. Передача аргументов, происходит разблокирование
- 14. Передача аргументов в HandlerFunc
- 15. Передача аргументов в casperjs.start
- 16. Передача аргументов методам контроллера
- 17. Передача множественных аргументов функции
- 18. Передача аргументов через указатели
- 19. Передача аргументов в Meteor.subscribe
- 20. Передача аргументов Listener
- 21. Передача аргументов array error
- 22. Передача аргументов методу
- 23. Передача аргументов конструкторам классов
- 24. Передача аргументов командной строки
- 25. Передача аргументов в Fragment
- 26. Передача аргументов функции Array.forEach
- 27. Передача аргументов ggvis
- 28. Передача аргументов $ .then функция
- 29. Передача массива аргументов Jquery
- 30. Передача аргументов ActionListener
передать его с помощью doInBackground() –