アイテムを含むリサイクルビューがあります。私がアイテムをクリックすると、別のリサイクラビューでアタッチするためにいくつかのデータを取得するためのAPIコールが発生します。リサイクラのアイテムで複数回クリックすると、多くのAPIリクエストが返され、最後にクリックされた項目の要求と私は要求の残りをキャンセルし、私はtiは、タイマーを使用してみてくださいそれらを無視したいが、それはそこに私の現在のコード複数のリクエストの最後のリクエストを取得する
@Override
public void onSelectedSourceClick(SelectedSource selectedSource, int position) {
newsAdapter.clearNewsList();
okHttpClient.dispatcher().cancelAll();
if (countDownTimer != null) {
countDownTimer.cancel();
}
countDownTimer = new CountDownTimer(500, 1000) {
@Override
public void onTick(long l) {
}
@Override
public void onFinish() {
//Make the request here
}
}
}.start();
}
がある。しかし、このソリューションが作業をdoes't
を失敗しています実際には、いずれかが解決策を持っている場合、またはRxJavaを使用している場合です。
Retrofit 2のCallクラスを使用してネットワーク要求を形成し、これもキャンセルできます。追加された呼び出しオブジェクトのリストを保持するためのデータ構造(Stackなど)を使用し、リストアイテムがクリックされ、新しい要求を作成する必要があるたびにチェックします。 リクエストをキャンセルする方法 - https://futurestud.io/tutorials/retrofit-2-cancel-requests Rx方法もありますが、現在は知らない – Napolean