android - 在android中,是否必须在主线程之外的房间中编写查询?

标签 android sqlite android-room

我想将 Room 数据库集成到我的 android 应用程序(JAVA)中。
我在互联网上浏览了许多有关 Room 数据库的内容,但没有一个能消除我的疑虑,这是

  1. 是否必须将查询写出主线程?
  2. 如果是,如果我们在主线程上编写查询会发生什么?

最佳答案

  1. Is it compulsory to write queries off the main thread ?

没有

您可以通过使用 .allowMainThreadQueries() 初始化来允许查询在主线程上运行

 Room.databaseBuilder(this, MyRoomDataBase::class.java, DATABASE_NAME).allowMainThreadQueries()
  1. If yes what happens if we write queries on main thread ?

如果您指定了.allowMainThreadQueries(),那么它将阻塞主线程直到执行查询,否则它会抛出IllegalStateException并且您的应用程序将崩溃。最好不要在主线程上查询

关于android - 在android中,是否必须在主线程之外的房间中编写查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55841816/

相关文章:

sql - 如何使用SQLite数据库设计“上周播放次数最多”排名?

android - 房间持久化后支持库出错

android-asynctask - Android Room + AsyncTask

android - 使用 RXJava2 Flowable 过滤数据

android - 闪屏全白?

c# - Xamarin 系统.ArgumentException : Parameter cannot be null

java - 将蜡烛放在图表上而不重叠

java - Listview 项目删除方法不起作用

ios - SQlite密码IOS

c++ - "Save as"的 SQLite 和大文件的自动保存功能