【发布时间】:2011-08-28 00:11:17
【问题描述】:
在 Honeycomb 中,Loader API 被引入作为通过在后台线程上执行繁重的工作来向应用程序提供数据的正确方法。在我的应用程序中,我正在努力用返回Cursors 的Loaders 替换我的所有Cursors。由于Cursor.requery() 现在已贬值,建议只调用restartLoader 并允许在后台线程上再次完成工作,然后在onLoadFinished 返回时changeCursor。
除了 ListView 在我想重新查询数据时不保持其滚动位置之外,所有这些都非常有效,使用 Cursor.requery() 这曾经可以工作,因为它是具有更新数据的相同 Cursor 实例。
如何在不丢失滚动位置的情况下刷新我的加载器?
【问题讨论】:
-
刷新前可以使用
getScrollX()和getScrollY()缓存,然后再手动设置。我不确定这是否会导致视觉闪烁或其他不愉快。 :-/
标签: android android-listview android-support-library android-cursor