我在android
中使用room
库。当我在数据库中插入一些东西时,我得到了当前正在运行的应用程序的数据,但是当我重新启动应用程序时,屏幕上什么也没有。如何获取以前存储的数据without using LiveData
?
发布于 2018-07-15 01:27:37
如果您希望获得以前的数据,下面的Codelab 可能会对您有所帮助。但这实际上取决于您的实现。
如何在不使用LiveData的情况下获取以前存储的数据?如何使用
Async Task
获取存储在room
库中的所有行?
说明
在您的Dao中包含以下代码:
@Query("SELECT * FROM user")
List<CustomObject> getAll();
在Repository类中包含以下代码片段:
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();
}
}
https://stackoverflow.com/questions/51228996
复制相似问题