我的应用程序包含(例如)3个活动:Activity1,Activity2,Activity3。每个活动在XML文件中声明的所有主要布局上都有唯一的背景图像。 从Activity1用户转到Activity2并在Activity3旁边,因此第一个2被推入堆栈。 问题是前两个活动占用了太多内存,而在Activity3中我有时会遇到OOM异常。 我找到了关于这种行为的原因的答案 - https://stackoverflow.com/a/4836241/1159507 在此之前,我相信当活动进入堆栈时它会释放所有内存。 我相信片段堆栈的行为相同。 所以我的问题是 - 如何在活动或片段进入堆叠时保留内存并在后退时保持负责的UI?
答案 0 :(得分:1)
您可以将所有耗费大量内存的对象(例如:大型图片)保存到第一个活动的onStop()
中的本地存储中,当用户按下时,您可以将其加载到onStart()
你的第一个活动。
答案 1 :(得分:1)
当活动进入后台时,活动的资源(未在onPause,onStop,...中发布)不会被释放。