以下是我用来向列表视图中的每一行添加图像的片段:
while (adapterDeal.getNextImageLink() != null) {
System.out.println("Inside while loop for images");
try {
url = new URL(adapterDeal.getNextImageLink());
stream = (InputStream) url.getContent();
drawable = Drawable.createFromStream(stream, "src");
adapterDeal.setImage(drawable);
handler.sendEmptyMessage(IMAGE_DOWNLOADED);
} catch (MalformedURLException e) {
System.out.println("Inside MalformedURLException"+e);
packAndSendMessage(e);
} catch (IOException e) {
System.out.println("Inside IOException"+e);
packAndSendMessage(e);
}
break;
}
在处理程序内部,我执行 notifydatasetchanged 以使用图像更新 listview 行。
我遇到的问题是,它只进入 while 循环一次,尽管我在 listview 中有“n”行,并且每行也有一个图像 url。
第一次进入 while 循环后,在 DDMS 中,它显示:
01-26 23:32:27.104: I/System.out(1628): Inside while loop for images
01-26 23:32:28.434: D/dalvikvm(1628): GC_FOR_ALLOC freed 45K, 8% free 5901K/6407K, paused 120ms
01-26 23:32:28.453: I/dalvikvm-heap(1628): Grow heap (frag case) to 6.467MB for 640016-byte allocation
01-26 23:32:28.714: D/dalvikvm(1628): GC_CONCURRENT freed 1K, 8% free 6525K/7047K, paused 16ms+12ms
可能是什么原因,它只进入while循环一次。和内存有关吗?
任何帮助表示赞赏。