【发布时间】:2014-05-25 09:20:56
【问题描述】:
我正在开发一个应用程序,它有一个显示应用程序标题的主要活动(两个动画图像视图叠加)、两个动画图片(也叠加)和三个按钮。该活动还有一个背景图片,与其他活动使用的相同。
应用程序从一个活动流向另一个活动,最终,该主要活动再次启动(使用 FLAG_ACTIVITY_CLEAR_TOP)。一切正常,但重新加载几次后,我的 Android 2.1 设备上出现内存不足错误。
一开始我把所有的图片都放在drawable文件夹里,到达main activity 5次后问题就出现了。然后,我调整了位图大小并根据密度将它们放在适当的文件夹中,并且在达到主要活动 14 次后出现问题。现在,我只是出于测试目的删除了背景图像,并且在 20 多次重新启动后出现了内存不足。
另外,如果我按下 Home 按钮然后切换回我的应用程序,问题似乎直到很久以后才会出现。
此外,我在 Nexus 5 中测试了该应用程序,从未发生过内存不足的情况。
所以...这是我手机的问题吗?安卓2.1?
谢谢!
[编辑] 我认为我已经找到了问题,但仍然是奇怪的行为。
例如,在某一时刻,我需要重新创建活动。由于“重新创建”方法不适用于我的最低 API 级别 (7),因此我按以下方式进行操作:
Intent refresh = new Intent(getActivity(), getActivity().getClass());
refresh.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(refresh);
我认为这是正确的。我释放 onClickListeners 并清除 onStop() 中的动画。但是,如果我在 onStop() 中设置断点,则不会在我期望它发生时调用它。有时它会在重新创建活动时立即调用,但有时会在几秒钟后调用。
但是,如果我按下 Home 按钮,则会正确调用 onStop,当我切换回应用程序时一切正常。
【问题讨论】:
-
请贴一些代码
标签: animation out-of-memory image-scaling android-2.1-eclair