猿问

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

我对此很好奇..我刚用过房间,想了解更多有关..查询是否会失败吗?我在通过方式插入或查询时使用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();

    }

}


达令说
浏览 294回答 1
1回答

MMTTMM

这是正确的方法吗?这取决于您的设计。要实现此目标,您将需要实现可感知生命周期的数据更新。反过来,这将导致添加样板代码来管理配置更改。另外,您还需要添加额外的代码来解析列表并相应地更新视图您的Activity将充满用于从DB访问数据的代码。理想情况下,您应该避免这种情况,并使Activity仅负责处理视图数据。活动不应该担心数据源。正确的方法是:实现一个ViewModel体系结构组件,并让ViewModel处理数据库操作。由于Room可以返回LiveData,因此您可以轻松观察更改并相应地更新视图。为此检查出可观察的查询
随时随地看视频慕课网APP

相关分类

Java
我要回答