我的应用程序在活动之间切换时内存消耗似乎相当高。我的快速解释是我有一个ActivityT,它是singleTop,基本上是主屏幕,你在列表中选择一个项目,它会将你带到ActivityB,它是列表项的更详细版本。然后按回来,它完成返回ActivityA的活动。这两项活动都非常丰富,并且散布着高质量的图像,但肯定不是这里的。
我画了一个快速图表来展示生命周期:
正如你所看到的,当应用程序首次启动时它是34MB,在选择列表项后它上升了2.5MB,然后当我按下它再次上升时...这将继续发生,同时来回走动。我需要确定的第一件事是这是否是应用程序的正常行为?如果不是这种情况,我在发布一些资源方面显然有一些工作要做,问题是什么?
在我的ActivityB的onDestroy()中,我从所有接收器中取消注册,我在我使用的任何东西上调用finish(),甚至尝试将所有内容设置为null但仍然没有变化!在启动ActivityB或完成它时我没有使用特殊标志,这可能是问题的一部分吗?堆栈的历史可能会坚持下去?
修改
我使用SceneTransitionAnimation在两个活动之间移动图像,当我关闭它时,每次从A到B时它都会增加0.5MB,当我从B到A时会增加0.01MB。我想我应该问在使用SceneTransitionAnimations时如何避免更大幅度增加的问题