ContentLoaderpublic class ContentLoader extends StreamLoader This class is a concrete implementation of StreamLoader that loads
"content:" URIs |
Fields Summary |
---|
private String | mUrl | private android.content.Context | mContext | private String | mContentType |
Constructors Summary |
---|
ContentLoader(String rawUrl, LoadListener loadListener, android.content.Context context)Construct a ContentLoader with the specified content URI
super(loadListener);
mContext = context;
/* strip off mimetype */
int mimeIndex = rawUrl.lastIndexOf('?");
if (mimeIndex != -1) {
mUrl = rawUrl.substring(0, mimeIndex);
mContentType = rawUrl.substring(mimeIndex + 1);
} else {
mUrl = rawUrl;
}
|
Methods Summary |
---|
protected void | buildHeaders(android.net.http.Headers headers)
if (mContentType != null) {
headers.setContentType("text/html");
}
// override the cache-control header set by StreamLoader as content can
// change, we don't want WebKit to cache it
headers.setCacheControl("no-store, no-cache");
| public static void | requestUrl(java.lang.String url, LoadListener loadListener, android.content.Context context)Construct a ContentLoader and instruct it to start loading.
ContentLoader loader = new ContentLoader(url, loadListener, context);
loader.load();
| protected boolean | setupStreamAndSendStatus()
Uri uri = Uri.parse(mUrl);
if (uri == null) {
mHandler.error(
EventHandler.FILE_NOT_FOUND_ERROR,
mContext.getString(
com.android.internal.R.string.httpErrorBadUrl) +
" " + mUrl);
return false;
}
try {
mDataStream = mContext.getContentResolver().openInputStream(uri);
mHandler.status(1, 1, 0, "OK");
} catch (java.io.FileNotFoundException ex) {
mHandler.error(
EventHandler.FILE_NOT_FOUND_ERROR,
mContext.getString(
com.android.internal.R.string.httpErrorFileNotFound) +
" " + ex.getMessage());
return false;
} catch (java.io.IOException ex) {
mHandler.error(
EventHandler.FILE_ERROR,
mContext.getString(
com.android.internal.R.string.httpErrorFileNotFound) +
" " + ex.getMessage());
return false;
} catch (RuntimeException ex) {
// readExceptionWithFileNotFoundExceptionFromParcel in DatabaseUtils
// can throw a serial of RuntimeException. Catch them all here.
mHandler.error(
EventHandler.FILE_ERROR,
mContext.getString(
com.android.internal.R.string.httpErrorFileNotFound) +
" " + ex.getMessage());
return false;
}
return true;
|
|