画像にカスタムタイルを使用しています。画像はリソースとして保存されます。私はメモリリークをトレースしており、これらのイメージを使用して保存しているメソッドが疑わしいと信じる原因があります。現在、私はこれをやっている:私は開いて、繰り返しこのアプリケーションを終了した場合どうなりますか短期間で使用する画像を保存するためのベストプラクティス
private void loadImageList()
{
Log.d(TAG,"Reloading List "+imageList);
if (imageList==null || imageList.size()<10)
{
imageList=new ArrayList<Bitmap>(10);
imageList.add(0,BitmapFactory.decodeResource(getResources(), R.drawable.ant_number0));
imageList.add(1,BitmapFactory.decodeResource(getResources(), R.drawable.ant_number1));
imageList.add(2,BitmapFactory.decodeResource(getResources(), R.drawable.ant_number2));
imageList.add(3,BitmapFactory.decodeResource(getResources(), R.drawable.ant_number3));
imageList.add(4,BitmapFactory.decodeResource(getResources(), R.drawable.ant_number4));
imageList.add(5,BitmapFactory.decodeResource(getResources(), R.drawable.ant_number5));
imageList.add(6,BitmapFactory.decodeResource(getResources(), R.drawable.ant_number6));
imageList.add(7,BitmapFactory.decodeResource(getResources(), R.drawable.ant_number7));
imageList.add(8,BitmapFactory.decodeResource(getResources(), R.drawable.ant_number8));
imageList.add(9,BitmapFactory.decodeResource(getResources(), R.drawable.ant_number9));
}
}
public void onStart()
{
super.onStart();
loadImageList();
}
があり、その後、システムはImageList
に画像を追加するための十分なメモリを持っていません。私はこのようなボタンのイメージを設定しています(しかし、オブジェクトImageButtonを使用します)。私は、アプリケーションがスレッド化されていることを追加する必要がありますし、この呼び出しは、私がonStop()
コマンドで画像を削除しようとしましたrunOnUiThread(Runnable)
ImageButton.setImageBitmap(imageList.get(current_var));
に存在しますが、スレッドは画像を割り当てようとするとき、それは時々クラッシュの原因となります獣のスレッドの性質のために、メモリにボタンに格納されている。
したがって、メモリリークの原因にならないこれらのイメージを読み込むことができますか?