gpt4 book ai didi

android - 在没有 ViewModel 的情况下使用 Room

转载 作者:太空狗 更新时间:2023-10-29 15:33:07 26 4
gpt4 key购买 nike

我刚开始使用 android room。唯一的问题是,数据库交互需要几层。表类 -> Dao 接口(interface) -> 数据库 repo -> ViewModels

在每一层中,都存在代码重复。

好像我直接从 Repo 调用查询,没有 viewModels,它不会允许。因为没有 viewModel 观察器的调用变成同步的,这会阻塞主线程。

要么必须有异步调用 repo 的标准方法,要么有一些 hack。也许我们可以使用一些异步泛型类,它可以让您传递查询并将结果返回到主线程。

可能的黑客攻击。不知道这样做是否正确。

    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为此,无需 ViewModel。

AsyncTask.execute {
val entity = daoInterface.queryFunction()
...
}

关于android - 在没有 ViewModel 的情况下使用 Room,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50149089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com