com.squareup.okhttp.CacheControl#com.facebook.imagepipeline.producers.BaseProducerContextCallbacks源码实例Demo

下面列出了com.squareup.okhttp.CacheControl#com.facebook.imagepipeline.producers.BaseProducerContextCallbacks 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: fresco   文件: VolleyNetworkFetcher.java
@Override
public void fetch(final VolleyNetworkFetchState fetchState, final Callback callback) {
  fetchState.submitTime = SystemClock.elapsedRealtime();

  final RawRequest request =
      new RawRequest(
          fetchState.getUri().toString(),
          new Response.Listener<byte[]>() {
            @Override
            public void onResponse(byte[] bytes) {
              fetchState.responseTime = SystemClock.uptimeMillis();

              try {
                InputStream is = new ByteArrayInputStream(bytes);
                callback.onResponse(is, bytes.length);
              } catch (IOException e) {
                callback.onFailure(e);
              }
            }
          },
          new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
              callback.onFailure(volleyError);
            }
          });

  fetchState
      .getContext()
      .addCallbacks(
          new BaseProducerContextCallbacks() {
            @Override
            public void onCancellationRequested() {
              mRequestQueue.cancelAll(
                  new RequestFilter() {
                    @Override
                    public boolean apply(Request<?> candidate) {
                      return candidate != null
                          && request.getSequence() == candidate.getSequence();
                    }
                  });
            }
          });

  mRequestQueue.add(request);
}