代码之家  ›  专栏  ›  技术社区  ›  Mariano L

为什么不建议对Android room使用allowMainThreadQueries()?

  •  0
  • Mariano L  · 技术社区  · 7 年前

    应用程序没有任何UI。它是一个保存和读取数据(少量表、少量记录)的插件。

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

    1 回复  |  直到 7 年前
        1
  •  2
  •   eurosecom    7 年前

    https://developer.android.com/training/data-storage/room/accessing-data

    注意:Room不支持在主线程上访问数据库,除非您在生成器上调用了allowMainThreadQueries(),因为它可能会长时间锁定UI。异步查询返回LiveData或flowables实例的查询不受此规则的约束,因为它们在需要时在后台线程上异步运行查询。

        2
  •  3
  •   musooff    7 年前

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