小编Kle*_*kus的帖子

错误:无法访问主线程上的数据库,因为它可能会长时间锁定 UI。- 使用 Kotlin 的 Android Room

好的,所以,我正在尝试使用 Android Room 为这个项目创建这个数据库。

首先,这是我在 Gradle 文件中关于这个问题的内容:

//Room database
    implementation "androidx.lifecycle:lifecycle-viewmodel:2.1.0"

    implementation "androidx.room:room-runtime:2.2.3"
    kapt "androidx.room:room-compiler:2.2.3"
    implementation "androidx.room:room-ktx:2.2.3"
Run Code Online (Sandbox Code Playgroud)

这是道代码:

@Dao
interface DebtsDao {

    @Query("SELECT * FROM debts")
    fun getDebtsList() : List<Debts>

    @Query("SELECT * FROM debts WHERE name LIKE :name")
    fun getNamedDebt(name : String) : Debts

    @Insert
    fun insertInDatabase(debt : Debts)

    @Delete
    fun deleteFromDatabase(debt : Debts)

}
Run Code Online (Sandbox Code Playgroud)

数据库位:

@Database(entities = arrayOf(Debts::class), version = 1)
abstract class AppDatabase : RoomDatabase()
{
    abstract fun debtsDao() : DebtsDao
}

Run Code Online (Sandbox Code Playgroud)

这是我使用它的功能:

    fun refreshRecyclerView()
    {
        val database …
Run Code Online (Sandbox Code Playgroud)

mobile android kotlin android-room android-jetpack

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

android ×1

android-jetpack ×1

android-room ×1

kotlin ×1

mobile ×1