从主线程查询安卓中的数据库



我正在使用sql lite,我通常查询1个表。如果我从主 UI 线程进行查询会不好吗?

谢谢

这取决于。如果表非常大,则执行查询可能需要一些时间,并可能导致应用中出现明显的滞后。另外,您说您通常只查询一个表,因此这留下了对其他表进行更多查询的可能性。

作为一般规则,我做了很多工作,例如使用 AsyncTask 在后台线程中查询和下载,因为即使它们现在不需要很长时间,它也会让我以后有额外的自由来扩展应用程序而无需大量重写。

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

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

如果花费不到一两秒的时间,那还不错,但始终建议在另一个线程上执行此操作。

请阅读 Android 文章 Designing for Responseability

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

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

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

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

最新更新