数据源不能删除数据

0 投票

使用产品: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月 3, 2020 分类:  271次浏览 | 用户: mxc 牛刀小试 (109 分)

1个回答

0 投票
 
已采纳
您好,在A活动跳转到B活动时有对工作空间进行关闭吗?由于文件型数据源是独占的,如果你需要在其他活动中删除数据需要在前一个活动中将工作空间关闭并进行释放。这样在B活动中删掉数据后回到A活动重新打开工作空间,数据是更新的。
1月 6, 2020 用户: 董懿鑫 登峰造极 (7,686 分)
采纳于 1月 6, 2020 用户:mxc
...