Ich habe eine Recycler-Ansicht mit Artikeln darin. Wenn ich auf ein Element klicke, um einen API-Aufruf zu machen, um Daten in einer anderen Recycler-Ansicht anzuhängen, ist das Problem, wenn der Benutzer mehrfach auf Elemente im Recycler klickt, viele API-Anfragen macht und die letzten zurücksendet die letzte geklickten Artikel Anfrage, und ich will den Rest der Anfragen löschen und ignorieren sie mich versuche ti einen Timer verwenden, aber es istNachrüstung bekomme die letzte Anfrage von mehreren Anfragen
es ausgefallen ist mein aktueller Code
@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();
}
aber diese Lösung does't Arbeit eigentlich so, wenn jemand eine Lösung hat oder RxJava dafür benutzt.
Verwenden Sie die Call-Klasse von Retrofit 2, um Ihre Netzwerkanforderung zu erstellen, mit der Sie sie auch abbrechen können. Verwenden Sie eine Datenstruktur (wie Stack), um die Liste der hinzugefügten Aufrufobjekte beizubehalten und sie jedes Mal zu überprüfen, wenn auf das Listenelement geklickt wird und eine neue Anforderung erstellt werden muss. So stornieren Sie die Anfrage - https://futurestud.io/tutorials/retrofit-2-cancel-requests Es kann Rx Weg auch sein, aber nicht darüber jetzt wissen – Napolean