2013-03-17 66 views
3

我有一个应用程序,加载一个活动A(包括ListFragment),从我加载活动B.如果我继续在这两个活动之间切换,我看到每次切换时,设备RAM都会增加10 MB。在三星设备上,我们可以使用任务管理器“清除内存”,这基本上清除了内存,但即使我这样做,内存也不会被清除。即使我强制停止应用程序并再次清除内存,它也不会下去..最后在这两个活动之间切换后,手机变慢,一旦内存已满,我必须重新启动设备。有趣的是,使用“dumpsys meminfo”进行检查时,应用程序的内存不会超过14-15 mb。我没有为我的应用程序获得OOM。 这种行为观察三星银河标签2 4.0,星系盛大,王牌二重奏。它在像Nexus 7或Galaxy Nexus这样的Nexus设备上没有被观察到。 为什么RAM不断上升,但应用程序内存不?这是因为任何BITMAP泄漏?我尝试使用MAT,但我刚开始使用它,所以可能需要一些时间来弄清楚如何识别泄漏。任何猜测?Android设备的内存使用量增加,但不是应用程序内存,直到设备被挂起

编辑 我在启动两个活动时都使用Intent.FLAG_ACTIVITY_REORDER_TO_FRONT标志。

回答

3

当您切换活动,就应该设置标志的使用意图:

Intent.FLAG_ACTIVITY_REORDER_TO_FRONT

这样,如果该活动已经在栈上,将切换到它,而不是开始一个新的一。

+0

我忘了提及,但我已经使用该标志..活动的多个实例不会创建 – 2013-03-17 18:15:23

相关问题