我有一个有一些前台 Activity 的应用程序,还有一个更新一些小部件的服务。 问题在于,由于该进程保留用于服务,因此其他 Activity 的内存(如果它们被打开)永远不会被回收。
查看that response from Roman Guy似乎可以正常。但它是? android 保留未使用 Activity 的资源多长时间?他们能活几个小时?
我如何轻松知道 Activity 是否泄露或未被回收?我已经尝试使用来自 AndroidMarket (FreeMemoryRecover) 的程序并且它已被清除,但我怀疑它会终止进程然后重新启动服务...
我们将不胜感激任何帮助或建议。
注意 1:我已经使用 HeapDump + Eclipse MAT 进行了调查,但没有看到奇怪的引用来控制我的 Activity
注2:关于这个问题我已经问过一些问题了:
最佳答案
Android 在不同状态下拥有多个 Activity 的能力是一项设计原则,因为它允许用户在 Activity 之间快速切换,而不必有意识地关闭他们之前正在做的任何事情。然后他们可以快速返回到之前的 Activity 。
如果 Android 需要暂停 Activity 并快速取消暂停,它需要保持 Activity 的资源对其可用。
如果内存是已终止 Activity 的一部分,那么它就会泄漏(不太可能,因为 Linux 内核会回收进程终止时使用的所有内存),否则它要么正在被主动使用,要么可能即将被使用。
这段内存让你担心什么?
关于android - 未释放的 Activity 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4836206/