Android房间数据库查询,不使用Flow或LiveData(无需观察)



我正在尝试检查我的应用程序Room DB。我想通过查询数据库来查找该pin的任何结果,来检查是否使用了pin代码。

我的DAO函数:

@Query("SELECT * FROM tblUser WHERE userPin = :pin LIMIT 1")
fun checkIfUserPinIsUsed(pin: String): UserTable?

我想这样做而不必观察结果,因为我的查询是在单击按钮时执行的(验证完成(。

如何在不出现"Cannot access database on the main thread"错误的情况下实现此目标?

EDIT:我想如何检查UI代码中是否使用了引脚的示例:

我需要在if语句中使用它来检查pin是否已被使用,并在UI上显示消息。像这样:

if (checkIfExists) {
show is used msg
} else { 
fine 
} 

如何使用观察者直接得到结果?

试试这个:

Room.databaseBuilder(context, TableName.class, context.getResources().getString(R.string.db_name))
.allowMainThreadQueries() // add this line
.build();

最新更新