首页 文章

从后台服务中的Android Room数据库中读取数据,没有例外但没有数据

提问于
浏览
0

我正在尝试从后台服务中的Android Room数据库中读取数据 . 没有例外但没有返回数据 .

我编写了一个函数来从DAO中的表中选择所有行 . 从后台服务调用该函数成功,但它不返回任何数据 .

我的“联系人”类保存联系信息(姓名,电话号码,电子邮件)并定义数据库架构 . 该数据库包含多行联系人,其中包括姓名,电话号码,电子邮件列 .

在DAO中返回LiveData的函数是:

@Query("SELECT * FROM contacts_table")
LiveData<List<Contact>> getAll();

其中“contacts_table”是保存联系信息的数据库表 .

我打电话给getAll如下:

AppDatabase db = AppDatabase.getDatabase(messageSenderContext.getApplicationContext());
mContactDAO = db.contactDAO();
mAllContacts = mContactDAO.getAll();

其中mContactDao是ContactDAO(我的Contact类的数据库访问对象),而mAllContacts是一个LiveData> . 这些是调用getAll()的类的私有字段 .

db.contactDAO()返回一个对象,mContactDAO.getAll()也是如此 . 但是尝试使用mAllContacts.getValue()从mAllContacts中解压缩List会返回null .

1 回答

  • 0

    结果是滥用LiveData . 这需要Observer实际获取数据 .

相关问题