我刚开始使用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()
            ...
        }

07-28 01:55
查看更多