内存管理与后台服务

时间:2012-09-02 13:52:43

标签: android memory memory-management memory-leaks

我创建了一个创建后台服务的应用程序。当我关闭应用程序时,服务正在运行,当我返回时将其恢复为“bind”(bindService)以进行通信。

问题是当我关闭应用程序并重新进入时,它会显着增加使用中的内存。花费20Mb - > 24Mb,如果我出去24Mb - > 28Mb,28Mb - > 30Mb ......因此打破了应用程序。我没有位图。如果足够使用静态数组但我已经测试过并且不是问题的根源。

当我完全关闭应用程序(包括服务)时,调用System.exit(0)并清理所有内存,但当然,当我关闭服务时,我可以调用该服务。我试图调用垃圾收集器(System.gc()),如果我注意到内存减少关闭,但当你再次打开应用程序时,内存会增加。

我非常感谢帮助,再见!

1 个答案:

答案 0 :(得分:1)

考虑到我们的信息,我怀疑问题是活动泄漏。 你能检查两件事:

  1. 仔细检查您是否使用可存储的活动上下文(对活动的引用)?特别是在服务中。
  2. 尝试进行实验 - 在开发者设置中选择“不要保留活动” - 每次活动启动后内存会减少吗?