Я занимаюсь различными учебными пособиями и примерами Asynctask, но я все еще немного смущен. Если я хочу выпустить 3 веб-запросы и возвращать их ответ как:Проверка на работоспособность AsyncTask
// Пример
String[] response = new String[3];
response[0] = webrequest("http://www.google.com"); //simple HTTP GET request
response[1] = webrequest("http://www.bing.com"); //simple HTTP GET request
response[2] = webrequest("http://www.aj.com"); //simple HTTP GET request
//sample results from request
response[0] = "blah";
response[1] = "arg";
response[2] = "meh";
Чтобы сделать это с AsyncTask, мне нужно реализовать 3 разных ATs? Должен ли я использовать что-то еще?
String[] response = new String[3];
webCreate sample = new webCreate();
try{
response[0] = sample.execute("http://www.google.com").get().toString();
response[1] = sample.execute("http://www.google.com").get().toString();
response[2] = sample.execute("http://www.google.com").get().toString();
}
catch (Exception sampleMsg)
{}
public class webCreate extends AsyncTask<String, String, String> {
}
protected String doInBackground(String... params) {
// String url=params[0];
String webRequestResponse = null; //the
// web request
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
return reponse;
}
Я знаю, что я мог бы получить доступ к данным отклика с помощью .get(), но тогда мой «Асинхронный» станет «синхронизации» лол. Я чувствую, что должен использовать что-то другое, кроме AsyncTask, но я понятия не имею, что это. Пожалуйста помоги.
Не используйте AsyncTasks. Посмотрите на Volley/Retrofit/Loaders/RxJava. –
AsyncTasks были неудачной попыткой в запущенных API, чтобы оптимизировать использование потоков. Со временем было замечено, что они плохо складываются, это аддон обратного вызова, а также контекст утечки. Избегайте тогда, где это возможно. –