首页 / 浏览问题 / 移动GIS / 问题详情
数据源不能删除数据
mxc
112EXP 2020年01月03日

使用产品:supermap-imobile-9.1.0-153-android-zip-chs

数据类型:文件型 udb

我在 A 活动打开了地图,并且成功显示出来了,从 A 跳转到 B 活动,在 B 活动打开同一个工作空间删除数据源里的数据,在日志的返回值是删除成功了的,但是从 B 活动返回来,地图里还是有数据的,没有删除掉。把应用关闭,再次打开,数据还是存在。

在 A 活动删除,是能直接删除的。

下面是 B 活动中删除数据的代码,因为有其他业务,所以是在 IO 线程删除的。

 Workspace workspace = new Workspace();
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo();
connectionInfo.setType(WorkspaceType.SMWU);
connectionInfo.setServer(path);
 boolean open = workspace.open(connectionInfo);
Datasets datasets = workspace.getDatasources().get(0).getDatasets();

 DatasetVector vector = (DatasetVector) datasets.get(layerName);
QueryParameter parameter = new QueryParameter();
parameter.setCursorType(CursorType.DYNAMIC);
parameter.setAttributeFilter(buffer.toString());
Recordset query = vector.query(parameter);

if (query.getRecordCount() > 0) {
      query.edit();
       boolean b = query.delete();
                                      
      query.update();
 }
 query.close();
query.dispose();
 vector.close();
 boolean save = workspace.save();
 workspace.close();
workspace.dispose();

1个回答

您好,在A活动跳转到B活动时有对工作空间进行关闭吗?由于文件型数据源是独占的,如果你需要在其他活动中删除数据需要在前一个活动中将工作空间关闭并进行释放。这样在B活动中删掉数据后回到A活动重新打开工作空间,数据是更新的。
9,127EXP 2020年01月06日
...