AndroidのリストビューでURLから画像を読み込もうとしています。私はそれを行うために以下のコードを使用しています。
Bitmap bm;
try {
URL url = new URL(imageUrl);
bm = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
imageView.setImageBitmap(bm);
上記のコードを AsyncTask で実行しています。実行すると正しく表示されます。しかし、別のアクティビティに移動して戻ってきた後、画像が表示されません。その時、私のログキャットは、
W/System.err(3570): java.io.IOException: BufferedInputStream is closed
W/System.err(3570): at java.io.BufferedInputStream.streamClosed(BufferedInputStream.java:116)
W/System.err(3570): at java.io.BufferedInputStream.read(BufferedInputStream.java:274)
W/System.err(3570): at org.apache.harmony.luni.internal.net.www.protocol.http.UnknownLengthHttpInputStream.read(UnknownLengthHttpInputStream.java:40)
W/System.err(3570): at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:166)
W/System.err(3570): at java.io.BufferedInputStream.read(BufferedInputStream.java:324)
W/System.err(3570): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
W/System.err(3570): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:573)
W/System.err(3570): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:628)
W/System.err(3570): at android.os.AsyncTask$2.call(AsyncTask.java:185)
W/System.err(3570): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
W/System.err(3570): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
W/System.err(3570): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
W/System.err(3570): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
W/System.err(3570): at java.lang.Thread.run(Thread.java:1019)
実際には以下の行にエラーが表示されていますが、
bm = BitmapFactory.decodeStream(url.openConnection().getInputStream());
SOでこれに関連するさまざまな投稿を検索して見つけましたが、解決策が見つかりませんでした...誰か助けてくれますか?