在我的android应用程序中,用户可以用导入的数据填充数据库,然后执行预定义的复杂sql查询。对于某些数据模式,查询将花费非常长的时间(htc hero上的时间甚至更长),而一般使用不会超过10-15秒。
有没有办法取消android上挂起的sqlite查询?超时也可以,不需要部分结果。我正在AsyncTask.doInBackground()内执行查询
我知道最好的方法是优化查询或更改应用程序逻辑,但在这种情况下,结果无论如何都取决于用户的知识,所以我想帮助那些进入麻烦模式的人。

最佳答案

无法取消挂起的SQL查询。这是在sqlite引擎中完成的。SQLite具有中断查询的本地方法,但在Java接口中是不可访问的。
最好的办法是提高查询性能。
阅读此:http://www.sqlite.org/cvstrac/wiki?p=PerformanceTuning
您可以通过限制行号将长时间运行的查询划分为更小的查询。然后,更容易取消以块执行的查询。

10-08 02:15