房间数据库插入数据后表还是空的

问题描述 投票:0回答:0

我在将数据插入

check_list_table
时遇到问题。
insert
方法正常执行,没有错误或警告,但是当我检查数据库时,它是空的。

Item、ItemDao 和 ViewModel 类如下所示:

@Entity(tableName = "check_list_table")
data class Item(
    @PrimaryKey(autoGenerate = true)
    var id: Int = 0,
    var title: String,
    var priority: Int=0
)
interface ItemDao {

    @Insert
    suspend fun insert(item: Item)

    @Delete
    suspend fun delete(item: Item)

    @Query("SELECT * FROM check_list_table ORDER BY id DESC")
    fun getAllItems():LiveData<List<Item>>

}
class DailyCheckListItemViewModel(private val itemDao: ItemDao, application: Application) :
    AndroidViewModel(application) {

    private val viewModelJob = Job()
    private val uiScope = CoroutineScope(Dispatchers.Main + viewModelJob)

    val allItems = itemDao.getAllItems().value


    override fun onCleared() {
        super.onCleared()
        viewModelJob.cancel()
    }

    fun onAdd(item: Item) {
        uiScope.launch {
            insertItem(item)
        }
    }

    suspend fun insertItem(item: Item) {
        withContext(Dispatchers.IO) {
            itemDao.insert(item)
        }
    }

}
  • insert
    方法调用。
  • insert
    使用适当的 feed 调用的方法。
  • insert
    方法从非 ui 线程调用
android kotlin mvvm android-room viewmodel
© www.soinside.com 2019 - 2024. All rights reserved.