如何使用列表中的异步任务从 android 中的房间表中获取所有数据



我想在不使用LiveData的情况下从 AndroidRoom数据库中获取List<Model>。 如何使用asynctaskthread函数获取所有行。

首先在你的DAO中定义get方法,假设你正在获取所有用户:

用户型号:

@Entity
public class UserModel {
@PrimaryKey
public int id;
public String first_name;
public String last_name;
}

用户数据访问对象

@Dao
public interface UserDao {
@Query("SELECT first_name, last_name FROM user")
public List<UserModel> getAllUsers();
}

创建应用程序数据库包装类

@Database(entities = {UserModel.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract UserDao userDao();
}

使用以下代码访问数据库

public class UserServices{
private AppDatabase db ;
public UserServices(){
db = Room.databaseBuilder(getApplicationContext(),
AppDatabase.class, "database-name").build();
}
public List<UserModel> getAllUsers(){
return new GetUsersAsyncTask().exicute().get();
}

private class GetUsersAsyncTask extends AsyncTask<Void, Void,List<UserModel>> 
{
@Override
protected Void doInBackground(Void... url) {
return db.getUserDao().getAllUsers();
}
}
}

现在通过调用访问用户

UserServices userServices=new UserServices();
List<UserModel> users=userServices.getAllUsers();

相关内容

  • 没有找到相关文章

最新更新