UI线程上的长查询的Android StrictMode错误

时间:2013-10-01 23:32:17

标签: android sql android-strictmode

我正在实现一个对数据库执行查询的库函数,这个查询有时会足够长,导致在UI线程上对长操作发出StrictMode警告。

我想知道在这里适用的正确模式是什么?如何在函数中包装异步调用,结果应该是同步的?

该函数获取表名和列,并使用正常的Cursor / resolver.query pattern功能返回布尔值。如果需要,我可以添加代码。

非常感谢, 安德烈

1 个答案:

答案 0 :(得分:2)

您可以执行从新Runnable执行的简单ThreadAsyncTask的任何操作。 AsyncTask是“Android方式”;否则您需要创建Handler,以便Runnable(或Thread.run())可以在UI线程上报告结果。 AsyncTask的文档包含大量有关使用的详细信息,API指南主题Processes and Threads提供了更多信息。