2017-11-29 2 views
-1

Ich habe eine Schublade Aktivität, in der ich ein Fragment mit einem JSON-Anforderungsaufruf starten, aber bevor diese Anfrage die Antwort zurückgibt, wechsle ich zu einem anderen fragmentieren durch das Menü des Schubladenelements und das Problem ist, wenn die Hauptfragmentdaten geladen werden, dann wird es im CHANGED Fragment angezeigt. Wie Salve Anfrage von einem anderen Fragment abzubrechen?Wie Volley-Server-Anfrage abzubrechen, wenn wechseln zu einem anderen Fragment, Schubladenaktivität verwenden

Antwort

1

Sie können einen Tag zu Ihrer Anfrage verwenden. Es wird jede Anfrage identifizieren. Danach verfügt Ihre Anforderungswarteschlange über die Methode cancelAll, für die ein Tag erforderlich ist.

// Bevor Sie Ihre Anfrage zur Warteschlange hinzufügen, legen Sie das Tag fest, das Tag kann eine Zeichenfolge sein.

yourRequest.setTag(tag); 

Danach, wenn Sie möchten, dass Ihre Anfrage stornieren:

requestQueue.cancelAll(tag); 

Dies funktioniert nur, wenn Sie Ihre Anfrage in der Warteschlange ist. Wenn Ihre Anfrage bereits gestartet wurde, wird sie nicht funktionieren. gibt es keine Möglichkeit, eine http-Anfrage, die bereits begonnen hat, rückgängig zu machen/abzubrechen. Sie können einen logischen Teil in Ihrer App verwenden, um mit dieser Situation umzugehen.

Nach der Ausführung der Anfrage, als Antwort auf die Anfrage können Sie prüfen, ob das geladene Fragment ist genau das gleiche wie Sie wollen, wenn ja, dann laden Sie nur die Daten, sonst nicht.

0
@Override 
protected void onStop() { 
super.onStop(); 
if (mRequestQueue != null) { 
mRequestQueue.cancelAll(this); 
} 
Verwandte Themen