私は自分のアクティビティを起動するたびに(実際には10が表示されるはずです)、ifアクティビティを起動するたびに、imageButtonとTextviewを追加するところの下に示すように、私はコード内にブレークポイントを保持し、10行すべてを正しく表示する問題を理解するためにゆっくりとデバッグします。私はそれがメモリから多くのメモリを必要と感じるWebから画像を取得しているので、コード内のメモリの問題でなければならないとは思っていません。レイアウトに追加した後にビューメモリを解放しようとしましたが、常にクラッシュしています。
私が間違っていることを教えてください。アンドロイドでのメモリリークを回避する方法
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
}事前に
おかげであなたが利用ListViewコントロールよりも複数の行をロードする場合
Prathima
スタックトレースとは何ですか? – Mudassir
どのようにしてparsedExampleDataSetを取得しますか?それは別のスレッドで解析されていませんか?あなたはそれのプリントアウトサイズにしようとしましたか? – ania
@ania :: noは同じスレッドで解析されません。私はサイズ()を印刷しようとしません。それは今行うでしょう。おかげで – Prathima