当显示一个包含大量位图(全屏,wvga)的图库时,我经常遇到内存不足的问题。我认为这与位图不被回收有关。何时/如何强制位图被回收?何时安全/可以在Android SimpleCursorAdapter中使用Gallery视图回收位图?
我还注意到,在simpleCursorAdapter的getView方法中,convertView始终为null。我认为这意味着旧视图不会被回收?即使滚动来回,每次都会创建一个新视图。但是,来回滚动不会导致内存不足问题,只有在图像总数足够大时才会发生。
与ListView一起使用同一个适配器时,视图被回收,所以看起来问题在于Gallery。
我能做些什么来强制视图和/或位图被回收?我还能做什么来管理内存,而不会降低图库大小和位图质量。
您是否尝试过像'purgeable'这样的各种位图选项 - 您是否在图库中使用了预缩放或高质量图像?你见过'SoftReference' /'WeakReference'用于内存管理吗? – 2010-12-15 13:56:06