首页 > 解决方案 > 为什么建议不要对 Android 房间使用 allowMainThreadQueries()?

问题描述

我正在创建一个只在数据库中保存一些计数器的小应用程序。如果不存在,则插入一个。如果确实如此,请增加更新。

该应用程序没有任何用户界面。这是一个保存和读取数据(少量表,少量记录)的插件。

在这种情况下我可以使用allowMainThreadQueries()吗?每次我读到一些关于这个框架的教程时总是说我不应该在生产中使用它。

标签: androidandroid-room

解决方案


不建议在 UI 线程上运行数据库查询的主要原因是因为数据库通常携带大量数据并且查询将花费大量时间并因此阻塞您的 UI。

在您的情况下,因为您只有一个计数器,您可以在主线程上使用allowMainThreadQueries. 而且所有这些“不推荐”都不会影响你的表现,因为它不涉及大量数据。但是,在您的数据库中有一个计数器将与数据库的观点相矛盾(在您的情况下为 Room)。这种计数器通常存储在SharedPreference


推荐阅读