5

我正在使用 sql lite,我通常查询 1 个表。如果我从主 ui 线程进行查询会很糟糕吗?

谢谢

4

4 回答 4

11

这取决于。如果您的表非常大,则执行查询可能需要一些时间,并且可能会导致您的应用出现明显的延迟。另外,您说您通常只查询一个表,因此可能会在其他表上进行更多查询。

一般来说,我会做很多工作,比如使用 AsyncTasks 在后台线程中查询和下载,因为即使它们现在不需要很长时间,它也给了我更多的自由来扩展应用程序而无需大量重写。

于 2012-09-19T17:58:01.620 回答
4

是的,实际上从主 UI 线程查询是不好的。

http://android-developers.blogspot.com/2009/05/painless-threading.html

如果花费的时间少于一两秒,那也不算太糟糕,但总是建议在另一个线程上执行此操作。

于 2012-09-19T17:59:31.480 回答
2

请阅读 Android 文章为响应而设计

可能长时间运行的操作(例如网络或数据库操作)或计算量大的计算(例如调整位图大小)应该在子线程中完成(或者在数据库操作的情况下,通过异步请求)。

该文章继续描述在主线程上执行昂贵的操作可能会导致“应用程序无响应”错误,并且操作系统将终止您的应用程序。

因此,虽然您可以在主线程上执行这些操作,但最好使用后台线程。

于 2012-09-19T17:57:46.617 回答
0

是的,您可以提供您的查询不应该花费很长时间,否则最好为此使用异步任务

于 2012-09-19T17:58:08.250 回答