我刚开始使用android房间。唯一的问题是,
数据库交互需要几层。
表类->DAO接口->数据库回购->视图模型
在每一层,代码都是重复的。
就像我直接从repo调用查询一样,如果没有viewmodels,它将不允许。因为不带viewmodel observer的调用将变为同步,从而阻塞主线程。
要么必须有异步调用repo的标准方法,要么就是一些黑客。
可能我们可以使用一些异步泛型类,它允许您传递查询并将结果返回到主线程。
可能是黑客。如果是正确的方法就不要知道。
AsyncTask.execute(new Runnable() {
@Override
public void run() {
List<User> users = apiService.getAllUsers();
if(users.size()>0)
{
System.out.println("Total users:"+users.size());
System.out.println("Email:"+users.get(0).getEmail());
}
}
});
最佳答案
您可以使用AsyncTask进行此操作,而无需使用viewmodels。
AsyncTask.execute {
val entity = daoInterface.queryFunction()
...
}