0

我的应用程序要求用户通过多页输入(注册过程)。随着用户深入注册,我必须保持数据完整,直到用户点击“完成”。这个过程涉及活动调用子活动和那些子活动调用另一个子活动。

流程是这样的:Main -> Sub-Activity (part 1 of signup) -> Sub-Activity (part2) -> Sub-Activity (part 3)。

这里的问题是,我收到来自 logcat 的内存不足警告,并且随着用户深入应用程序,各种进程被杀死。我已经尝试通过不在活动之间传递自定义对象而是将它们存储到 mysqllite 并在需要时检索它们来节省现有内存。还有一点要补充的是,我不是在处理图像,使用的控件只是文本视图、编辑视图和微调器。

我的问题是,当有多个子活动链接时,内存不足问题是否常见?我该如何去做以释放内存?自定义控件是否使用比预设控件更多的内存?(我的预感之一)

*编辑*我找到了内存不足问题的原因。它与子活动无关。罪魁祸首是我正在使用的自定义控件。我改用预设控件进行了测试,应用程序的整体性能得到了显着提高。我不再有低内存警告,现在一切正常。

4

1 回答 1

2

我认为子活动的内存问题并不常见。我使用了一个选项卡主机,每个选项卡有 5 个选项卡和 3-4 个活动,加上复杂的方法 http 调用和图像适配器,并且没有问题(这样活动不会调用onDestroy 方法,但只需调用 onPause 然后 onResume)。尝试减少全局变量,例如。当您按下下一步按钮传递给其他活动或类似的东西时,只需引用视图并获取它们的数据,以便垃圾收集器收集垃圾。调用 onPause 时删除一些引用,然后如果您再次需要它们,只需再次引用它们(可能在 onResume 上)

于 2011-02-21T04:13:36.790 回答