Properly destroy background loader in onDestroy().
Change-Id: I6069262f9ebb46d01f15ca64332ce600db2f899c
diff --git a/src/com/android/launcher2/WallpaperChooser.java b/src/com/android/launcher2/WallpaperChooser.java
index 46f770f..386ae97 100644
--- a/src/com/android/launcher2/WallpaperChooser.java
+++ b/src/com/android/launcher2/WallpaperChooser.java
@@ -45,7 +45,6 @@
private ImageView mImageView;
private boolean mIsWallpaperSet;
- private BitmapFactory.Options mOptions;
private Bitmap mBitmap;
private ArrayList<Integer> mThumbs;
@@ -104,6 +103,16 @@
mIsWallpaperSet = false;
}
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+
+ if (mLoader != null && mLoader.getStatus() != WallpaperLoader.Status.FINISHED) {
+ mLoader.cancel(true);
+ mLoader = null;
+ }
+ }
+
public void onItemSelected(AdapterView parent, View v, int position, long id) {
if (mLoader != null && mLoader.getStatus() != WallpaperLoader.Status.FINISHED) {
mLoader.cancel(true);
@@ -199,6 +208,10 @@
drawable.setDither(true);
view.postInvalidate();
+
+ mLoader = null;
+ } else {
+ b.recycle();
}
}
}