Я пишу небольшое приложение для Android, которое использует asyncTask для отображения изображения из веб-службы. Код работает, но мне было доведено до сведения, что я должен переработать это растровое изображение.Как переработать растровое изображение в AsyncTask? Android
Мой вопрос в том, есть ли способ утилизировать это растровое изображение после того, как я закончил использовать его?
Я попытался найти решение, используя onStop(), и либо растровое изображение не было переработано, либо изображение вообще не отображалось.
Вот мой OnCreate
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Other unrelated things
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
imageUrl = bundle.getString("imageUrl");
displayImage();
}
А вот мой AsyncTask
private void displayImage() {
new AsyncTask<String, Void, Bitmap>() {
protected Bitmap doInBackground(String... params) {
try {
return loadBitmap(params[0]);
} catch (Exception e) {
Logger.e(TAG, getString(R.string.error_loading_image_bitmap));
return null;
}
}
protected Bitmap loadBitmap(String urlSpec) throws IOException {
InputStream is = new URL(urlSpec).openStream();
try {
return BitmapFactory.decodeStream(is);
} finally {
is.close();
}
}
protected void onPostExecute(Bitmap bitmap) {
if (bitmap != null) {
ImageView invoiceItemImageView = (ImageView) findViewById(R.id.some_id_here);
invoiceItemImageView.setImageBitmap(bitmap);
}
}
}.execute(imageUrl);
}