Я хочу отправить некоторые данные через http при нажатии кнопки, каждый раз, когда пользователь нажимает кнопку, некоторые данные должны быть добавлены в очередь, затем они будут отправлены через http, после получения ответа я хочу удалить его из очереди затем делаем то же самое со следующими элементами в очереди.
Я знаю, как добавлять элементы в очередь, и я попробовал асинхронную задачу для вызова метода http. Проблема, если пользователь много раз нажимал кнопку, как я могу гарантировать, что следующий элемент в очереди не будет вызываться до тех пор, пока не будет выполнен http для первого. И я хочу, чтобы операция завершилась, если приложение тоже было в фоновом режиме.
Это асинхронный код в методе doInBackground:
@Override
protected Boolean doInBackground(Void... params) {
try {
msgResponseIS = getInputStream(generatedLink);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (msgResponseIS != null){
BufferedReader r = new BufferedReader(new InputStreamReader(
msgResponseIS));
StringBuilder total = new StringBuilder();
String line;
try {
while ((line = r.readLine()) != null) {
total.append(line);
}
setResponseValue(total.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;}
else
return false;
}