执行拖放列表视图的更新查询

时间:2013-03-05 16:39:53

标签: performance android-listview android-cursoradapter

我正在使用由游标适配器支持的拖放列表视图。为了维护数据库,我在拖动视图时更新数据库条目的位置。为此我使用SQLiteDatabase.rawQuery的传统方法,然后在更新操作完成后,我调用notifyDataSetChanged来调用cursoradapter的bindview方法重新定位条目。然而,这会滞后用户界面并使应用程序无法响应。我尝试使用我的数据库的单个实例将所有数据库操作移动到AsyncTask。当线程排队时,这也会滞后我的UI,列表视图必须等到每个asynctask完成。

我的ListView始终在等待查询完成。

此方案的正确执行方式应该是什么?使用CursorLoader会给我一个快速的UI吗?

我见过很多应用程序正在高效拖放,其中大部分正在使用数组适配器。但是我需要更新我的数据库,因为listview中的enteries被移动了。

请告诉我一个有效的方法......

编辑:好的我正在重新实现结构,因为我发现异步任务甚至没有排队。它们是为了并发。

要问的正确问题应该是如何按FIFO顺序对数据库查询进行排队?有关于此的任何指示?

此致 Parvaz Bhaskar

1 个答案:

答案 0 :(得分:0)

我最终通过实现Threads并仅使用一个处理程序发布我的查询来管理我对数据库的FIFO调用。这排队我的数据库查询,我事先更新了我的UI ...所以我不必等待我的查询完成。

非常感谢我找到的所有链接最终都是SO链接。