- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
好的,文档声明它让 Activity 管理光标的生命周期。但是我并没有真正看到它的意义,因为当 Activity 被销毁时,对新创建的游标的任何引用也应该被删除,然后游标本身在下一个垃圾收集周期中消失。那何必呢?
最佳答案
您不应该依赖游标被垃圾收集器销毁...游标代表大量资源:游标持有的所有数据,加上与拥有游标的内容提供者的连接,这也意味着要求将其进程保存在内存中。
在较新的 Android 版本中,如果游标的终结器在未显式关闭的情况下运行,则会打印日志消息,因为应用程序在完成游标后关闭游标非常重要。
托管游标负责在 Activity 被销毁时关闭游标,但它们的作用还不止于此:它们将在 Activity 停止和重新启动时被停用和重新查询。
也就是说,此时您应该考虑弃用托管游标。新的 Loader API 好多了,并且对您的应用程序的用户体验进行了许多改进——它确保所有光标操作都在主线程之外完成(因此您的 UI 交互和动画中不会出现故障),并且可以当由于配置更改而重新启动 Activity 时,跨 Activity 实例传播现有游标数据,而不必重新加载数据。
如果您需要在比 3.0 更早的 Android 版本上运行,您可以为这些应用程序使用 v4 支持库的 Loader 实现。
关于android - startManagingCursor 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542745/
有没有一种方法可以在服务而不是 Activity 中使用 startManagingCursor() 来获得相同的结果(如图 here 所示)? 更具体地说,我想根据服务的生命周期来管理给定游标的生命
private DbAdapter_Task task; private DbAdapter_Assignment assignment; private DbAdapter_User user;
好的,文档声明它让 Activity 管理光标的生命周期。但是我并没有真正看到它的意义,因为当 Activity 被销毁时,对新创建的游标的任何引用也应该被删除,然后游标本身在下一个垃圾收集周期中消失
此刻我控制我的光标如下所示。我想知道使用 startManagingCursor() 有什么好处。就目前而言,我有很多游标,每个人都知道,然后遇到与它们有关的错误。如果不是更好的做法,这是否有益。 C
弃用 startManagingCursor 的原因是什么? 我的简单应用程序有一个 TableView ,其中包含来自数据库的数据列表。所以,我现在在 onCreate 中拥有的是: final
我在我的应用程序中使用 CursorLoader 来执行数据库事务。 我的应用程序还有调用 startManagingCursor() 的方法,该方法已弃用。 我只想替换这个方法调用,那我该怎么办呢?
我使用了这段代码: Cursor c = cr.query(message, null, null, null, null); startManagingCursor(c); 但是 startMana
我想了解一些东西,我相信这对某些人来说是非常基础的。 我到处都读到 startManagingCursor 方法已被弃用,您应该使用 CursorLoader 类。但这是否意味着即使对于支持 API
我为显示来自数据库 sqlite 的数据创建了一个应用程序,但是在运行或构建时应用程序没有运行,因为方法 startManagingCursor 和构造函数 SimpleCursorAdapter 已
我将我的 android SDK 更新到最新版本,现在它说 startManagingCursor() 已 deprecated。我需要帮助来更新我的代码以使用新的 CursorLoader。 pri
我是一名优秀的程序员,十分优秀!