我正在编写一个应用程序,该应用程序具有前台服务、内容提供程序和绑定到服务并使用 AIDL 获取对象列表的 Activity 前端。该服务确实有效并更新了数据库。
如果我将活动打开 4-8 小时以上,然后转到手机 (Nexus One) 设置下的“运行服务”部分,则会显示正在使用的内存量异常大 (~42MB)。
我认为有泄漏。当我检查堆内存时,我得到堆大小:~18MB,~2MB 已分配,~16MB 可用。分析 Eclipse MAT 中的 hprof 似乎很好,这使我推断出堆栈上的内存泄漏。这甚至可能吗?如果是,我能做些什么来阻止或调查泄漏?android的“运行服务”部分报告的内存使用情况是否正确(我认为是)?
另一个注意事项:当 UI 未启动(仅运行服务)时,我无法重现此问题