当我启动应用程序时,我的第一个活动的堆大小增加到 10MB,然后当我进入下一个活动时,我的堆大小增加到 37 MB。在第二个活动中,我通过bitmap.recycle()
单击按钮释放一些内存,因此当单击特定按钮时,堆大小减小到 32MB。现在,当我对第二个活动调用完成时,我的内存大小减少到 16MB,因此暗示它没有完全从堆栈中删除,因为第一个活动的原始内存大小为 10MB。
现在,当我回到第二个活动时,它会出现以下崩溃,表明我在单击按钮时释放的位图没有被重新创建。每次用户进入该活动时,我都会在第二个活动上使用相同的 onCreate 方法,因此它应该再次从 xml 获取位图。
06-26 08:45:39.636: E/AndroidRuntime(6265): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@41361ef0
我在这里缺少什么?一旦调用完成,如何从堆栈中完全删除活动?
我尝试在活动一中使用android:launchMode="singleTop"
andandroid:clearTaskOnLaunch="true"
android:launchMode="singleTop" android:noHistory="true"
活动二上
任何建议将不胜感激。