我有一个应用程序,可监控多个内容提供商,如日历,联系人列表,Gmail等
该应用程序工作正常,但我发现它可以使用高达约70mb的内存。当我在内存中查看姜饼时,应用程序本身使用大约6-7mb,其余的是内容提供者,所以例如目前:
Android核心应用程序 - 16mb - 提供商联系人正在使用
Gmail - 36mb - 提供商Gmail正在使用
日历存储3.9mb - 正在使用提供者日历
当我启动应用程序时,内存使用率很低,但是一旦我收到一个gmail,内存就会启动。 当我查询内容提供商时,我总是确保关闭所有打开的游标。
还有什么我应该关闭,我失踪了吗?我不想取消注册观察者,因为我仍然想要监视未来的变化。
答案 0 :(得分:0)
似乎我的问题是在彼此之间使用多个游标。我不知道为什么,但是一旦我改变我的代码来执行查询,将结果存储在一个集合中,关闭查询然后遍历该集合以执行较低级别的查询我现在看不到真正的大内存使用率。
我在编写代码的方式尽可能早地关闭每个游标的游标,但这样查询会更快关闭。