3

我编写了一个非常标准的 Android 应用程序,它在 GridView 中显示一堆图片(来自联系人)。该应用程序没有做任何特殊的尝试来保留屏幕方向更改的数据,只是在重新创建 Activity 时重新创建 GridView、适配器和加载器。

但是,经过几次方向更改后,应用程序变慢了;再过几次后,它会因内存不足错误而崩溃(在 BitmapFactory.decodeStream() 处)。如果我让它在旋转之间静置一分钟,让垃圾收集器完成它的工作,这种情况仍然会发生。

我的印象是,当 Acitivty 在方向更改期间被销毁时,Android 会释放与 Activity 关联的所有内存。然而,情况似乎并非如此。我的问题是:尽管 Activity 被破坏,我会无意中保留哪些内存?

(请注意,应用程序运行良好,只要它不受太多方向变化的影响,因此我使用的一般内存最小化方法就足够了。)

4

1 回答 1

1

我想你忘了加bitmap.recycle();

也很简单的方法可以解决这个问题,添加到 AndroidManifest,活动参数: android:configChanges="orientation|screenSize"

于 2013-10-21T07:57:27.223 回答