Java 类com.facebook.imagepipeline.producers.BaseProducerContextCallbacks 实例源码
项目:GitHub
文件: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);
}
项目:GongXianSheng
文件:ElnImageDownloaderFetcher.java
@Override
public void fetch(final FetchState fetchState, final Callback callback) {
final Future<?> future = mExecutorService.submit(
new Runnable() {
@Override
public void run() {
HttpURLConnection connection = null;
Uri uri = fetchState.getUri();
String scheme = uri.getScheme();
String uriString = fetchState.getUri().toString();
while (true) {
String nextUriString;
String nextScheme;
InputStream is;
try {
connection = createConnection(uriString);
nextUriString = connection.getHeaderField("Location");
nextScheme = (nextUriString == null) ? null : Uri.parse(nextUriString).getScheme();
if (nextUriString == null || nextScheme.equals(scheme)) {
is = connection.getInputStream();
callback.onResponse(is, -1);
break;
}
uriString = nextUriString;
scheme = nextScheme;
} catch (Exception e) {
callback.onFailure(e);
break;
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
}
});
fetchState.getContext().addCallbacks(
new BaseProducerContextCallbacks() {
@Override
public void onCancellationRequested() {
if (future.cancel(false)) {
callback.onCancellation();
}
}
});
}
项目: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);
}