2017-11-29 10 views
-1

JSON 요청 호출이있는 프래그먼트를 시작하는 서랍 활동이 있지만이 요청이 응답을 반환하기 전에 다른 것으로 전환 중입니다. 조각을 통해 서랍 항목 메뉴 및 문제는 주요 조각 데이터가로드되면 변경된 조각에 표시됩니다. 다른 조각에서 발리 요청을 취소하는 방법은 무엇입니까?서랍 활동을 사용하여 다른 프래그먼트로 바꿀 때 발리 서버 요청을 취소하는 방법

답변

1

요청에 태그를 사용할 수 있습니다. 모든 요청을 식별합니다. 그런 다음 요청 대기열에 cancelAll 메소드가 있으며 태그가 필요합니다.

// 대기열에 요청을 추가하기 전에 태그를 설정하면 태그가 문자열이 될 수 있습니다. 그 후

yourRequest.setTag(tag); 

, 당신은 당신의 요청을 취소 할 때 요청이 대기열에있을 때

requestQueue.cancelAll(tag); 

이 만 작동합니다. 요청이 이미 시작된 경우 작동하지 않습니다. 이미 시작된 http 요청을 취소/취소 할 수있는 방법이 없습니다. 앱에서 일부 논리 부분을 사용하여이 상황을 처리 할 수 ​​있습니다.

요청을 실행 한 후 요청에 대한 응답으로로드 된 단편이 정확히 일치하는지 확인할 수 있습니다. 그렇다면 데이터로드 만 가능합니다.

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