Android:如何取消/中断/中断挂起的 SQLite 查询?

标签 android sqlite interrupt

在我的 Android 应用程序中,用户可以用导入的数据填充数据库,然后执行预定义的复杂 SQL 查询。对于某些数据模式,查询将花费很长时间(在 HTC Hero 上需要几分钟甚至更多),而通常使用不会超过 10-15 秒。

有什么方法可以取消 Android 上挂起的 SQLite 查询吗?超时也很好,不需要部分结果。我在 AsyncTask.doInBackground()

中执行查询

我知道最好的方法是优化查询或更改应用程序逻辑,但在这种情况下,结果无论如何都取决于用户知识,所以我想帮助那些输入麻烦模式的人。

最佳答案

您无法取消挂起的 sql 查询。它是在 SQLite 引擎中完成的。 SQLite 具有中断查询的 native 方法,但在 Java 接口(interface)中不可访问。

最好的办法是提高查询性能。
读这个:http://www.sqlite.org/cvstrac/wiki?p=PerformanceTuning

您可以通过限制行数将长时间运行的查询划分为更小的查询。然后取消以 block 执行的查询会更容易。

关于Android:如何取消/中断/中断挂起的 SQLite 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3459493/

相关文章:

c++ - 使用线程 C++ 停止 while 循环

android - VM 有 multidex 支持,MultiDex 支持库被禁用

java - java中如何从链表中删除数据

ios - 如何在我的 iOS 项目中添加和执行 .sql 文件?

android - SQLite Database for Android 应用强制关闭

django - 反向外键到模板中的 django-fts 可搜索模型

operating-system - 直接连接到 CPU 的 PCIe 插槽的中断路由

c - ATMega 随机数生成

android - 避免在 recyclerview gridlayoutmanager 中滚动第一行和第一列

android - Robolectric 的蓝牙影子对象