@Override
  public void fetch(final HttpUrlConnectionNetworkFetchState fetchState, final Callback callback) {
    fetchState.submitTime = mMonotonicClock.now();
    final Future<?> future =
        mExecutorService.submit(
            new Runnable() {
              @Override
              public void run() {
                fetchSync(fetchState, callback);
              }
            });
    fetchState
        .getContext()
        .addCallbacks(
            new BaseProducerContextCallbacks() {
              @Override
              public void onCancellationRequested() {
                if (future.cancel(false)) {
                  callback.onCancellation();
                }
              }
            });
  }
Network fetcher that uses the simplest Android stack.

<p>Apps requiring more sophisticated networking should implement their own {@link
NetworkFetcher}.
imagepipeline/src/main/java/com/facebook/imagepipeline/producers/HttpUrlConnectionNetworkFetcher.java