ボタンのクリックで http を介してデータを送信したい。ユーザーがボタンをクリックするたびに、データをキューに追加する必要があり、応答を取得した後、キューから削除したい。次に、キュー内の次のアイテムで同じことを行います。
アイテムをキューに追加する方法を知っているので、Async タスクで 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;
}