ローカルのモバイルDBのデータベースからすべてのデータを取得するために初めてアプリケーションを起動するときに、起動時に12のWeb APIを呼び出す必要があります。 私の要件は、12のWeb APIの中で、ネットワークエラーやタイムアウト、または他のボレーの実行が同じ瞬間に停止する必要があるため、いずれかが失敗した場合です。 いずれか私にそれを行う方法を教えてください。VolleyによってWeb APIの実行を中止する方法
私はキャッシュをクリアして、ボレーのエラーメソッドでキャンセルしようとしましたが、それでも私はさらなるウェブAPIの応答をegttingしています。エラーで
のWeb APIを呼び出す
for (String data : mWebApiList) {
switch (data) {
//Dashboard
case data1:
webAPICalling.callDashBoardApi(mContext, this);
break;
//Loan Type
case data2:
webAPICalling.callLoanTypeWebApi(mContext, this);
break;
//Help FAQs
case data3::
webAPICalling.callHelpFaqsWebAPI(mContext, this,false);
break;
:
:
break;
}
}
私はすべての要求をキャンセルするが、仮定する3と7のWeb APIを聞かせています、まだ成功し、失敗となり、すべての4 5 6 7 8 9用とエラーに呼びかけています7も同様です。私は3後に他のWeb APIがexevuteすることができますしたい。
public void onError(String status) {
SFApplication. getInstance().getRequestQueue().clearAll(TAG);
SFApplication.getInstance().getRequestQueue().getCache().clear();
}
ありがとうHoria、私はonErrorメソッドでそれをやっている停止の代わりに、すべての要求をキャンセルする同じをしようとしているが、依然としてすべての要求の実行が完全に行われます。私は自分のコードも詳細に更新しました。 –
あなたのアプリのアーキテクチャーは詳細からは明らかではありませんが、アプリの開始時にリクエストをかなり早く追加しているようです。 Volleyは、12のすべてのリクエストを並行して実行しようとします(指定した設定まで)。 1つのリクエストが失敗するまでには時間がかかるので、その時間までに他のユーザーは飛行していて、答えが示すように、飛行中のリクエストのTCP/IPやHTTPレベルのキャンセルはありません。あなたはそれらについて通知されません。 –
こんにちはHoria、 "あなたはただ彼らについて通知を受けていません"と、あなたは私がそれらについて通知されないと言っていますが、間違いで他の人を成功させるなら、コールバックを受けています。それらの通知を停止する方法はありますか? –