为了账号安全,请及时绑定邮箱和手机立即绑定

Android Room Persistence中的插入,更新,删除和查询是否会失败吗?

Android Room Persistence中的插入,更新,删除和查询是否会失败吗?

达令说 2021-04-09 18:15:37
我对此很好奇..我刚用过房间,想了解更多有关..查询是否会失败吗?我在通过方式插入或查询时使用AsyncTask ..并且我没有任何回调..我只是执行它,然后保存它..每当我查询时,我都会这样:try {    List<Object> objectList = new GetObjectTask.execute().get();} catch (Exception e) {    e.printStack();}这是正确的方法吗?这是GetObjectTask类public class GetObjectTask extends AsyncTask<Void, Void, List<Object>> {    public GetObjectTask() {    }    @Override    protected List<Object> doInBackground(Void... voids) {        return AppDatabaseHelper.getInstance().getObjectDao().getAllObject();    }}
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

这是正确的方法吗?

这取决于您的设计。

  • 要实现此目标,您将需要实现可感知生命周期的数据更新。反过来,这将导致添加样板代码来管理配置更改。另外,您还需要添加额外的代码来解析列表并相应地更新视图

  • 您的Activity将充满用于从DB访问数据的代码。理想情况下,您应该避免这种情况,并使Activity仅负责处理视图数据。活动不应该担心数据源。

正确的方法是:

  • 实现一个ViewModel体系结构组件,并让ViewModel处理数据库操作。

  • 由于Room可以返回LiveData,因此您可以轻松观察更改并相应地更新视图。为此检查出可观察的查询


查看完整回答
反对 回复 2021-04-18
  • 1 回答
  • 0 关注
  • 293 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信