我正在开发一个应用程序,其主要活动显示应用程序标题(两个动画图像视图覆盖),两个动画图片,也覆盖,和三个按钮。此活动还有一个背景图像,与其他活动使用的图像相同。
应用程序从一个活动流向另一个活动,最终再次启动此主要活动(使用FLAG_ACTIVITY_CLEAR_TOP)。一切正常,但在重新加载几次后,我的Android 2.1设备上出现Out Of Memory错误。
首先,我将所有图像放在drawable文件夹中,并且在到达主要活动5次后出现问题。然后,我调整了位图大小并将它们放在适当的文件夹中,具体取决于密度和到达主要活动14次后出现的问题。现在,我刚刚删除了背景图像以进行测试,并且在重新启动20次之后出现了Out of Memory。
此外,如果我按“主页”按钮然后切换回我的应用程序,问题似乎要到很晚才出现。
此外,我在Nexus 5中测试了应用程序,而且Out of Memory从未发生过。
所以......我的手机有问题吗?用Android 2.1?
谢谢!
[编辑] 我认为我找到了问题,但仍然是奇怪的行为。
例如,有一次,我需要重新创建活动。随着"重新创造"方法不适用于我的最低API级别(7),我按如下方式执行:
Intent refresh = new Intent(getActivity(), getActivity().getClass());
refresh.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(refresh);
我认为,这是正确的。我发布onClickListeners并清除onStop()中的动画。但是,如果我在onStop()中放置断点,则在我预期它发生时不会调用它。有时,只要重新创建活动就会调用它,但有时会在几秒钟后调用它。
但是,如果我按下主页按钮,就会正确调用onStop,当我切换回应用程序时,一切正常。
答案 0 :(得分:1)
最简单的解决方案是在应用程序标记
下添加清单android:largeHeap="true"
但这不会解决你的问题,只是将它推迟几轮 此链接将帮助您分析您的应用程序,并查看原因: http://blogs.innovationm.com/android-out-of-memory-error-causes-solution-and-best-practices/
我的猜测这与图像有关,因为我也有这个问题.. Android官方链接到这个问题是: http://developer.android.com/training/displaying-bitmaps/index.html
这个帮助我的链接..尝试一下 http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
希望有所帮助