首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用` `Async Task`获取`room`库中存储的所有行?

如何使用` `Async Task`获取`room`库中存储的所有行?
EN

Stack Overflow用户
提问于 2018-07-08 13:04:04
回答 1查看 2.7K关注 0票数 -7

我在android中使用room库。当我在数据库中插入一些东西时,我得到了当前正在运行的应用程序的数据,但是当我重新启动应用程序时,屏幕上什么也没有。如何获取以前存储的数据without using LiveData

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-15 01:27:37

如果您希望获得以前的数据,下面的Codelab 可能会对您有所帮助。但这实际上取决于您的实现。

如何在不使用LiveData的情况下获取以前存储的数据?如何使用Async Task获取存储在room库中的所有行?

说明

在您的Dao中包含以下代码:

代码语言:javascript
复制
  @Query("SELECT * FROM user")
    List<CustomObject> getAll();

在Repository类中包含以下代码片段:

代码语言:javascript
复制
 public List<CustomObject> getAll() throws ExecutionException, InterruptedException {
    return new getAllAsyncTask(mCustomObjectDao).execute().get();
}

private static class getAllAsyncTask extends android.os.AsyncTask<Void, Void, List<CustomObject>> {

    private CustomObjectDao mAsyncTaskDao;
    List<CustomObject> a;

    getAllAsyncTask(CustomObjectDao dao) {
        mAsyncTaskDao = dao;
    }

    @Override
    protected List<CustomObject> doInBackground(Void... voids) {
        return mAsyncTaskDao.getAll();
    }
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51228996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档