Android蜂巢上重新查询的替代方案

Android蜂巢上重新查询的替代方案,android,database,cursor,android-3.0-honeycomb,Android,Database,Cursor,Android 3.0 Honeycomb,由于谷歌在那里的“智慧”已经抛弃了光标上的重新查询,我正在寻找替代方案 它很有帮助地说:“只要请求一个新的游标,这样您就可以异步地执行此操作,并在新游标返回后更新列表视图。” 然而,这是否意味着我现在需要在每个光标上保留搜索运行的记录,以便我可以再次运行它 想知道人们在做什么。CursorLoader与ListView和CursorAdapter配合使用非常好。问题是您必须编写自己的ContentProvider。这不是很多工作,非常值得 如果使用游标时未将其放入适配器中,则可以使用Async

由于谷歌在那里的“智慧”已经抛弃了光标上的重新查询,我正在寻找替代方案

它很有帮助地说:“只要请求一个新的游标,这样您就可以异步地执行此操作,并在新游标返回后更新列表视图。”

然而,这是否意味着我现在需要在每个光标上保留搜索运行的记录,以便我可以再次运行它


想知道人们在做什么。

CursorLoader
ListView
CursorAdapter
配合使用非常好。问题是您必须编写自己的
ContentProvider
。这不是很多工作,非常值得

如果使用游标时未将其放入
适配器中
,则可以使用
AsyncQueryHandler
,并通过
Cursor.registerContentObserver()
手动观察更改。请注意,这种方法还需要
内容提供者


如果你真的不想实现一个
ContentProvider
,你必须实现你自己的异步查询方法,或者坚持使用
requery()
,但不要这样做。

谢谢,让我恼火的是来自安卓网站maxsdkversion的这句话警告:不建议声明此属性。首先,无需将该属性设置为阻止应用程序在Android平台新版本发布时部署到其上的方法。根据设计,新版本的平台是完全向后兼容的。啊,如果你真的愿意,你可以安全地继续使用旧的方法。我已经被弃用了,因为它在UI线程(这意味着磁盘IO)上执行查询,这是一个很大的禁忌。我认为问题实际上是以前的问题,如果在关闭的光标上运行requery,它会忽略你-现在它会翻出来。这不是一件坏事!。我想现在我会修补它,然后在以后的版本中重做这个区域的代码。在摩托罗拉XOOM和模拟器上得到了很好的验证。在2.3或更低版本上,以下操作有效:if(mCursor!=null){mCursor.requery();}现在我必须做:if(mCursor!=null){if(mCursor.isClosed()==false){mCursor.requery();}不是世界上最大的变化,但这是不兼容的-将我指向bug跟踪器,我将提出以下问题供参考: