从主线程查询android中的db

时间:2012-09-19 17:55:03

标签: android

我正在使用sql lite,我经常查询1个表。如果我从主ui线程查询是不是很糟糕?

谢谢

4 个答案:

答案 0 :(得分:11)

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

作为一般规则,我做很多工作,比如使用AsyncTasks在后台线程中查询和下载,因为即使它们现在花费很长时间,它也会让我在以后扩展应用程序时没有进行大量重写。

答案 1 :(得分:4)

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

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

如果花费的时间不到一两秒,也不算太糟糕,但总是建议在另一个线程上进行。

答案 2 :(得分:2)

请阅读Android文章Designing for Responsiveness

  

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

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

因此,当可以在主线程上执行这些操作时,最好使用后台线程。

答案 3 :(得分:0)

是的,你可以提供你的查询不应该花很长时间其他明智的事情,最好使用Async任务这个