2011-01-24 79 views
0

我正在写一个显示listView(带有图像和一些文本)的应用程序。我写了我的适配器,我recyle视图和使用一个视图,所有工作很好(但不是很顺利)。安卓垃圾收集器信息

但是通过只显示listview,我可以在LogCat中看到成千上万个由gc释放的对象(〜12000每3秒) 这似乎不太正常。

enter image description here

有没有办法知道什么是班上最gced物体或某种气相色谱的日志(或数据)的?对于我来说,为什么我的应用程序是垃圾邮件立即gced新的对象?

回答

1

因为我还不能评论,所以我添加了一个新的答案:-( 这一切都取决于你在适配器内部做了什么,你写的是你有XML数据,你在里面解析吗?DOM类产生难以置信的数量如果你必须解析DOM,在适配器之外进行并且/或者缓存结果。 另外,你所做的任何枚举(例如:for (String x : xarray))都会产生大量的垃圾。 (考虑使用StringBuilder),尽量不要使用函数局部变量,把它们放到更多的全局作用域(如果不是,它的垃圾) 你可以在适配器中创建Bitmap对象,然后分配给ImageView?缓慢且大量垃圾。

我想这就是所有常见的垃圾和慢UI经验的陷阱。任何人? ;)

问候, 奥利弗

1

这通常发生在您下载数据时 - 通过您的应用程序或任何应用程序。如果没有,你需要提供正在运行的代码,以便我们看看。

顺便说一句,关于您的零接受做些事情。

+0

是所有显示的数据被下载。 我的ArrayAdapter正在从列表工作,它是从我得到的xml文件构建的。但是我确信xml的url对于被缓存的图像只会获得一次和相同的结果。 – jpprade 2011-01-24 13:57:37