Java Android Room持久化中的插入、更新、删除和查询是否曾经失败?
我只是好奇而已。。我最近刚用过这个房间,想知道更多关于它的情况。。查询曾经失败过吗?顺便说一下,我在插入或查询时使用的是AsyncTask。。我没有任何回电。。我只是执行它,然后就保存了。。每当我询问时,我都是这样做的:Java Android Room持久化中的插入、更新、删除和查询是否曾经失败?,java,android,Java,Android,我只是好奇而已。。我最近刚用过这个房间,想知道更多关于它的情况。。查询曾经失败过吗?顺便说一下,我在插入或查询时使用的是AsyncTask。。我没有任何回电。。我只是执行它,然后就保存了。。每当我询问时,我都是这样做的: try { List<Object> objectList = new GetObjectTask.execute().get(); } catch (Exception e) { e.printStack(); } 试试看{ List objec
try {
List<Object> objectList = new GetObjectTask.execute().get();
} catch (Exception e) {
e.printStack();
}
试试看{
List objectList=新建GetObjectTask.execute().get();
}捕获(例外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();
}
}
公共类GetObjectTask扩展了AsyncTask{
公共GetObjectTask(){
}
@凌驾
受保护列表背景(无效…无效){
返回AppDatabaseHelper.getInstance().getObjectDao().getAllObject();
}
}
这是正确的方法吗
这取决于你的设计
- 在这种情况下实施需要您自己实施生命周期感知数据更新。这反过来将导致添加样板代码来管理配置更改。您还需要添加额外的代码来解析列表并相应地更新视图
- 您的活动将被用于从DB访问数据的代码所淹没。理想情况下,您应该避免这种情况,让活动只负责处理视图数据。活动不应该关心数据源
- 实现一个架构组件,并让ViewModel处理db操作
- 由于Room能够返回
,因此您可以轻松地观察更改并相应地更新视图。为此,请查看LiveData