Мне кажется, это не проблема AssynchTask, это в основном MemoryIssue, если вы декодируете свое растровое изображение, используя метод Factory, используйте это
public Bitmap decode(String file, int quality) {
BitmapFactory.Options o2 = null;
try {
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeFile(file, o);
final int REQUIRED_WIDTH = 240;
final int REQUIRED_HEIGHT = 280;
int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = quality;
scale = quality;
while (true) {
if (width_tmp / 2 < REQUIRED_WIDTH
|| height_tmp / 2 < REQUIRED_HEIGHT)
break;
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}
o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
} catch (Exception e) {
Log.i("Decodeing error2", "" + e.getMessage());
}
try {
return BitmapFactory.decodeFile(file, o2);
} catch (Exception e) {
Log.i("Decodeing error1", "" + e.getMessage());
return null;
}
в качестве дают 4 или 5 в файле, вы можете заменить его на InputStream
, а также вам нужно изменить еще немного кода, чтобы сделать его пригодным для использования в вашей программе