我写了一个标准的Android应用程序,在GridView中显示一堆照片(从联系人获取)。该应用程序在屏幕方向更改时没有做任何特殊处理来保留数据,只是在Activity重新创建时重新创建GridView、适配器和加载器。
然而,在几次方向更改后,应用程序变慢了;在更多方向更改后,它会崩溃并出现内存不足错误(在BitmapFactory.decodeStream()处)。如果我让垃圾收集器运行一段时间来让它执行其任务,离开它在旋转之间停留一分钟,这种情况仍会发生。
我原以为当Activity在方向更改期间被销毁时,Android会释放与Activity相关联的所有内存。然而,事实似乎并非如此。我的问题是:即使Activity被销毁,我可能会无意中保留哪些内存?
(请注意,只要不经过太多次的方向更改,应用程序就可以正常运行,因此我正在使用的内存最小化方法是足够的。)
然而,在几次方向更改后,应用程序变慢了;在更多方向更改后,它会崩溃并出现内存不足错误(在BitmapFactory.decodeStream()处)。如果我让垃圾收集器运行一段时间来让它执行其任务,离开它在旋转之间停留一分钟,这种情况仍会发生。
我原以为当Activity在方向更改期间被销毁时,Android会释放与Activity相关联的所有内存。然而,事实似乎并非如此。我的问题是:即使Activity被销毁,我可能会无意中保留哪些内存?
(请注意,只要不经过太多次的方向更改,应用程序就可以正常运行,因此我正在使用的内存最小化方法是足够的。)