Android Webview GIF随着时间的推移不断增长

时间:2012-02-10 01:31:03

标签: android memory-leaks webview heap animated-gif

简而言之,我正试图在网页浏览中显示动画GIF。此webview位于列表项中。所以,有一个不同的GIF列表视图。

我在listview上设置了这样的GIF:

View v = convertView;
if (v == null || position == 1) {
    LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    v = vi.inflate(R.layout.routine_exercise_item, parent, false);
}
TextView t = (TextView)v.findViewById(R.id.routine_exercise_num);
t.setText(getResources().getString(R.string.other_exercise) + " " + (position));

t = (TextView)v.findViewById(R.id.routine_exercise_description);
t.setText(mitems.get(position).description);



WebView anim = (WebView)v.findViewById(R.id.routine_exercise_gif);
anim.loadUrl("file:///android_asset/" + mitems.get(position).imagePath);
anim.setBackgroundColor(0);

我在ArrayAdapter的getView中执行此操作<>子类。

一切都加载得很好并且gif正常工作......但是,只要它显示出来,我的堆就会变得疯狂。在我的EVO 3d上,堆只需要30-45秒就能达到32MB并崩溃。

我不确定发生这样的内存泄漏我做错了什么。

任何提示?

1 个答案:

答案 0 :(得分:3)

OOF。每个WebViewListView?是的,他们很重。我不一定会看到任何会导致您看到的行为,但使用WebView只是为了显示GIF有点矫枉过正。查看使用View的{​​{1}}子类上的this tutorial来显示动画GIF。可能比WebViews轻。