@Override protected void onPostExecute(Bitmap bitmap) { if (isCancelled()) { bitmap = null; } if (imageViewReference != null && bitmap != null) { final ImageView imageView = imageViewReference.get(); final BitmapWorkerTask bitmapWorkerTask = getBitmapWorkerTask(imageView); if (this == bitmapWorkerTask && imageView != null) { imageView.setImageBitmap(bitmap); } } else { Savelog.e(TAG, "Unable to load " + key); if (hostFragmentReference != null) { ViewerFragment hostFragment = hostFragmentReference.get(); Activity activity = hostFragment.getActivity(); if (activity != null) { if (bitmap == null) { Savelog.e(TAG, "bitmap is null. Possibly due to OOM error"); Toast.makeText( hostFragment.getActivity(), "Try to refresh this page by scrolling slowly.", Toast.LENGTH_SHORT) .show(); } else { Savelog.d(TAG, debug, "bitmap is not null for key " + key); } } } } }
// once complete, see if ImageView is still around and set up bitmap @Override protected void onPostExecute(FileLoader fileLoader) { super.onPostExecute(fileLoader); if (isCancelled()) { fileLoader = null; } if (hostFragmentReference != null) { final ViewerFragment hostFragment = hostFragmentReference.get(); if (hostFragment != null) { if (fileLoader != null) { hostFragment.mFileLoader = fileLoader; Toast.makeText( hostFragment.getActivity(), "Found " + fileLoader.getNumberOfPages() + " pages", Toast.LENGTH_SHORT) .show(); } else { hostFragment.mFileLoader = null; if (err != null) { Savelog.e(TAG, "Cannot fetch pdf" + "\n" + Savelog.getStack(err)); } Toast.makeText(hostFragment.getActivity(), "Data unavailable", Toast.LENGTH_SHORT) .show(); } // Callback upon finished fetching. hostFragment.onFetchingCompleted(); // Detach host fragment from this task. hostFragment.mFetcherTask = null; } } Savelog.d(TAG, debug, "AsyncTask completed."); }
@Override protected FileLoader doInBackground(Object... arg0) { FileLoader fileLoader = new FileLoader(filename); try { fileLoader.setup(); } catch (Exception e) { err = e; Savelog.e(TAG, "Asyntask rendering unsuccessful." + "\n" + Savelog.getStack(e)); } return fileLoader; }
@Override protected Bitmap doInBackground(Object... params) { Bitmap bitmap = null; key = (String) params[0]; int position = (Integer) params[1]; Savelog.d(TAG, debug, "AsyncTask trying to load bitmap from cache"); if (fileLoader == null) { Savelog.e(TAG, "file loader is null."); } else { int pageNumberNeeded = position + 1; bitmap = fileLoader.load(appContext, maxWidth, pageNumberNeeded, pageRange); } // bitmap could be null if oom error or cache flushed out. return bitmap; }