我开发了一个在Android上使用大量图像的应用程序。
该应用程序运行一次,填满屏幕(上的信息Layouts
,Listviews
,Textviews
,ImageViews
,等)和用户读取的信息。
没有动画,没有特效或任何可以填满内存的东西。有时可绘制对象可以更改。有些是android资源,有些是文件保存在SDCARD的文件夹中。
然后,用户退出(该onDestroy
方法已执行,并且应用程序由VM保留在内存中),然后在某个时候用户再次进入。
每次用户进入该应用程序时,我都会看到内存越来越大,直到用户获得java.lang.OutOfMemoryError
。
那么处理许多图像的最佳/正确方法是什么?
我应该将它们放在静态方法中,这样就不会一直加载它们吗?我是否必须以特殊方式清洁版面或版面中使用的图像?
听起来您有内存泄漏。问题不是处理很多图像,而是当您的活动被销毁时,图像没有被释放。
如果不查看代码,很难说出这是为什么。但是,本文有一些技巧可能会有所帮助:
http://android-developers.blogspot.de/2009/01/avoiding-memory-leaks.html
特别是,使用静态变量可能会使情况更糟,而不是更好。您可能需要添加代码,以在应用程序重绘时删除回调-但同样,这里没有足够的信息可以肯定地说。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句