我正在使用sql lite,我经常查询1个表。如果我从主ui线程查询是不是很糟糕?
谢谢
答案 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任务这个