Switch to a background thread pool
Bug: 5019676
Use a shared thread pool
Eliminate some unnecessary use of AsyncTask (which has extra
overhead compared to using a thread pool)
Change-Id: I01d6c84816a9c9705216c8fdb8ed8c990265626a
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index cf5df9e..4c05688 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -424,36 +424,36 @@
// WebIconDatabase needs to be retrieved on the UI thread so that if
// it has not been created successfully yet the Handler is started on the
// UI thread.
- new RetainIconsOnStartupTask(WebIconDatabase.getInstance()).execute();
+ Runnable task = new RetainIconsOnStartupTask(
+ mActivity, WebIconDatabase.getInstance());
+ BackgroundHandler.execute(task);
}
- private class RetainIconsOnStartupTask extends AsyncTask<Void, Void, Void> {
+ private static class RetainIconsOnStartupTask implements Runnable {
private WebIconDatabase mDb;
+ private Context mContext;
- public RetainIconsOnStartupTask(WebIconDatabase db) {
+ public RetainIconsOnStartupTask(Context context, WebIconDatabase db) {
mDb = db;
+ mContext = context;
}
@Override
- protected Void doInBackground(Void... unused) {
- mDb.open(mActivity.getDir("icons", 0).getPath());
+ public void run() {
+ mDb.open(mContext.getDir("icons", 0).getPath());
Cursor c = null;
try {
- c = Browser.getAllBookmarks(mActivity.getContentResolver());
- if (c.moveToFirst()) {
- int urlIndex = c.getColumnIndex(Browser.BookmarkColumns.URL);
- do {
- String url = c.getString(urlIndex);
- mDb.retainIconForPageUrl(url);
- } while (c.moveToNext());
+ c = Browser.getAllBookmarks(mContext.getContentResolver());
+ int urlIndex = c.getColumnIndex(Browser.BookmarkColumns.URL);
+ while (c.moveToNext()) {
+ String url = c.getString(urlIndex);
+ mDb.retainIconForPageUrl(url);
}
- } catch (IllegalStateException e) {
+ } catch (Throwable e) {
Log.e(LOGTAG, "retainIconsOnStartup", e);
} finally {
if (c != null) c.close();
}
-
- return null;
}
}