이미지로드 및 캐싱 및 이미지 요청 관리를 위해 Github에서 많이 사용되는 이미지 로더가 많이 있습니다. 이미지 뷰 더 이상 창으로 요청을 (장착 된 경우, 만약 내가 요구 사항을 가로 질러 오지 진행중인 이미지 요청 Android 취소 - 이미지 로더 Volley, Picasso
- 범용 이미지 로더
- 발리
- Picasso
- 프레스코 (enhancement 추가) 배치 및 항공편) 취소됩니다.
그러나 및리스트 뷰 GRIDVIEW이미지 뷰 자주 부착 윈도우로부터 분리 등 큐 요청이 각각 상쇄 것처럼 스크롤링 위젯.
위의 모든 라이브러리에서 이미지 요청의 진행 상황을 추적 할 수있는 메커니즘이 없다는 사실을 염두에 두어야합니다. 이미지 뷰이 분리 된 경우 바이트 스트림이 이미 완료된 경우 요청을 진행 기준에 따라 취소해야합니다. 다음 작업의 여기
입니다 .. 일반적으로 사용자가 항상 목록보기 및 같은 스크롤 위젯에 GRIDVIEW 등을 많이 스크롤 차례로, 네트워크 대역폭을 절감하고 네트워크 호출을 줄 것이다, 취소 할 수 없습니다한다 발리에 대한 나의 이해 :
private void cancelExistingRequest(Object target) { checkMain(); Action action = targetToAction.remove(target); if (action != null) { action.cancel(); dispatcher.dispatchCancel(action); } if (target instanceof ImageView) { ImageView targetImageView = (ImageView) target; DeferredRequestCreator deferredRequestCreator = targetToDeferredRequestCreator.remove(targetImageView); if (deferredRequestCreator != null) { deferredRequestCreator.cancel(); } } }
여기 범용 이미지 로더에 대한 이해입니다 :
public boolean removeContainerAndCancelIfNecessary(ImageContainer container) { /* logic to check progress of Request */ mContainers.remove(container); if (mContainers.size() == 0) { mRequest.cancel(); return true; } return false; }
여기 피카소와 나의 이해이다 내가 인라인 요청을 취소하는 허가 범용 이미지 로더를 파악하지 않았다.
void cancelDisplayTaskFor(ImageAware imageAware) { cacheKeysForImageAwares.remove(imageAware.getId()); }
나 네트워크 요청 만 그것을 해결 할 수있는 가능성을 알려 주시기 바랍니다. 이미지가 이미 캐시 된 경우 요청을 취소합니다.
배터리 성능이 내가 발리 피카소에 대해 말할 수 없다 안드로이드
요청을 취소하거나 60 %까지 요청을 캐시하는 대신 인터넷 사용량이 줄어들어 요청을 취소하고 다시 갓 필요가있을 때 같은 이미지를 얻으려면 AndroidQuery를 사용해보세요. 이 3 개의 라이브러리 대신 비동기 이미지 로딩 : http : //code.google.com/p/android-query/ –
캐시 된 이미지가 아닌 네트워크 호출에 대한 요청입니다. –
네, 그렇지만 캐쉬 이미지가 아니라면 매번 net에서 로딩 될 것이고 이미지 요청이 75 % 바이트 데이터를 얻지 못하면 낭비 할 것이므로 간접적으로 네트워크 사용에 낭비가 될 것입니다. –