android - 为什么建议不要对 Android 房间使用 allowMainThreadQueries()?
问题描述
我正在创建一个只在数据库中保存一些计数器的小应用程序。如果不存在,则插入一个。如果确实如此,请增加更新。
该应用程序没有任何用户界面。这是一个保存和读取数据(少量表,少量记录)的插件。
在这种情况下我可以使用allowMainThreadQueries()吗?每次我读到一些关于这个框架的教程时总是说我不应该在生产中使用它。
解决方案
不建议在 UI 线程上运行数据库查询的主要原因是因为数据库通常携带大量数据并且查询将花费大量时间并因此阻塞您的 UI。
在您的情况下,因为您只有一个计数器,您可以在主线程上使用allowMainThreadQueries
. 而且所有这些“不推荐”都不会影响你的表现,因为它不涉及大量数据。但是,在您的数据库中有一个计数器将与数据库的观点相矛盾(在您的情况下为 Room)。这种计数器通常存储在SharedPreference
推荐阅读
- java - Weblogic 从 12.1.3.0 到 14.1.1.0
- tensorflow - 阅读 Google Cloud 上的 TFRecord 以进行批量预测并进行键控预测
- java - Is there any way to serialize a Map with a BigDecimal key as a BigDecimal and not as string using Jackson?
- r - 为什么我的带有 if 语句的 for 循环不起作用?
- php - 如何使用 PHP 在 Outlook 电子邮件正文中获取 url 链接
- rust - 如何给闭包一个生命周期的参数,该参数在调用闭包后立即结束?
- flutter - Flutter Stack 定位和溢出
- web - 添加 Chrome 扩展时如何传递查询字符串?
- php - Wordpress:php strpos 不适用于 WP_Query
- python - 有没有办法从磁盘使用 spacy-transformers(离线)