【发布时间】:2011-07-21 05:38:07
【问题描述】:
我正在动态更新表格布局,如下所示,我在其中为每个 tableRow 添加了一个图像按钮和一个 Textview。每当我启动我的活动时,它只显示 4 行(实际上应该显示 10 行)但是如果我在代码中保留断点并且慢慢调试以找出正确显示所有 10 行的问题。我怀疑这一定是代码中的内存问题,因为我从网上获取图像,我觉得这需要大量内存。我尝试在添加到布局后释放视图内存,但它一直在崩溃。
请让我知道我在哪里做错了。
for (int i = 0; i < parsedExampleDataSet.getAppNameString().size(); i++)
{
TableRow row = new TableRow(this);
TextView tv = new TextView(this);
tv.setText("AppName: "+ parsedExampleDataSet.getAppNameString().get(i) +"\n" + "Description: " + parsedExampleDataSet.getDescriptionString().get(i));
ImageButton imgBtn = new ImageButton(this);
URL aURL = new URL(parsedExampleDataSet.getImageUrlString().get(i));
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
Bitmap bm = BitmapFactory.decodeStream(bis);
imgBtn.setImageBitmap(bm);
imgBtn.setBackgroundColor(color.transparent);
imgBtn.setTag(parsedExampleDataSet.getMarketLinkString().get(i));
bis.close();
is.close();
row.addView(imgBtn);
row.addView(tv);
table.addView(row,new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); //here table is a tablelayout object
}
提前致谢
普拉提玛
【问题讨论】:
-
什么是堆栈跟踪?
-
如何获得 parsedExampleDataSet?它不是在单独的线程中解析的吗?您是否尝试仅打印它的大小?
-
@ania ::no 它在同一个线程中解析。我尝试打印 size()。现在会做。谢谢
标签: android memory memory-leaks