Muk*_*Ali 2 sqlite android android-room
我刚开始使用android房间。唯一的问题是,数据库交互需要多层。表类-> Dao接口->数据库仓库-> ViewModels
并且在每一层中都有代码重复。
就像我直接从Repo调用查询,没有viewModels一样,它将不允许。因为没有viewModel观察器的调用变得同步,所以阻塞了主线程。
必须有异步调用回购协议的标准方法,或者是一些黑客。也许我们可以使用一些Async泛型类,它使您可以传递查询并将结果返回到主线程。
可能会被黑客入侵。如果这是正确的方法,请不要知道。
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());
}
}
});
Run Code Online (Sandbox Code Playgroud)
您可以为此使用AsyncTask而不需要ViewModels。
AsyncTask.execute {
val entity = daoInterface.queryFunction()
...
}
Run Code Online (Sandbox Code Playgroud)
如果您只是在测试房间,请致电
.allowMainThreadQueries()
Run Code Online (Sandbox Code Playgroud)
如果您要构建一个真正的应用程序,那么跳过此Android体系结构是没有意义的。
| 归档时间: |
|
| 查看次数: |
1516 次 |
| 最近记录: |