好的,文档声明它允许Activity管理游标的生命周期。但是我没有真正看到它的重点,因为当活动被销毁时,对新创建的游标的任何引用也应该被删除,然后光标本身在下一个垃圾收集周期中就会消失。那么为什么要这么麻烦呢?
答案 0 :(得分:33)
你不应该依赖游标被垃圾收集器摧毁......游标代表了大量资源:游标保存的所有数据,以及与拥有游标的内容提供者的连接,这也意味着要求将其过程保存在记忆中。
在更新版本的Android中,如果游标的终结器在未明确关闭的情况下运行,则会打印日志消息,因为应用程序在完成游标时关闭游标非常重要。
托管游标在活动被销毁时负责关闭游标,但它们也会执行更多操作:当活动停止并重新启动时,它们将被停用并重新获取。
那就是说,此时你应该考虑弃用托管游标。新的Loader API要好得多,并且对应用程序的用户体验有很多改进 - 它确保所有游标操作都在主线程之外完成(因此UI交互和动画中没有毛刺),并且可以当由于配置更改而重新启动活动而不必重新加载数据时,在活动实例之间传播现有游标数据。
如果您需要运行旧版本的Android而不是3.0,则可以使用v4支持库的Loader实现为这些应用程序。