我的应用要求用户浏览多个输入页面(注册过程)。 随着用户更深入地注册,我必须保持数据完整,直到用户点击“完成”。这个过程涉及活动调用子活动和那些调用另一个子活动的子活动。
流程如下:Main - >子活动(注册的第1部分) - >子活动(第2部分) - >分活动(第3部分)。
这里的问题是,我从logcat获得了一个低内存警告,并且随着用户深入到应用程序中,各种进程被杀死。我已经尝试通过不在活动之间传递自定义对象来保存现有内存,而是将它们存储到mysqllite中并在需要时检索它们。还有一点需要补充的是,我不处理图像和使用的控件只是textviews,editviews和spinners。
我的问题是,当链接多个子活动时,内存问题是否常见?我如何解决它以释放内存?自定义控件是否比预设控件使用更多内存? (我的一个预感)
* 编辑 * 我找到了内存不足问题的原因。它与子活动无关。罪魁祸首是我正在使用的自定义控件。我通过使用预设控件进行了测试,并且应用程序的整体性能得到了显着提升。我不再有低记忆警告,现在一切顺利。
答案 0 :(得分:2)
我不认为通常存在子活动的内存问题..我使用了一个标签主机,其中包含5个标签和3-4个活动,每个加上复杂的方法http调用和图像适配器并且没有问题(这种方式activites不会调用onDestroy方法,只需调用onPause然后调用onResume)。尝试减少全局变量ex。只需引用视图并在按下下一个按钮传递给其他活动或类似的东西时获取数据,以便垃圾收集器收集垃圾。在调用onPause时删除一些引用,然后再次需要它们时再次引用它们(可能在onResume上)