如何使用 ArcGIS SDK for Android 编辑离线 .geodatabase 文件?

How can I edit an offline .geodatabase file with ArcGIS SDK for Android?

我正在尝试使用 ArcGIS SDK for Android 编辑离线 .geodatabase 文件。我一直在查看文档,找到了使用服务的方法,但我的应用程序不使用任何服务,只是一个离线文件。

我正在做的是打开 .geodatabase 文件,当文件打开时它会自动创建两个文件(.geodatabase-shm、.geodatabase-wal)。后来,当我想编辑地图某个单元格的相关信息时,我调用方法:

GeodatabaseFeatureTable.updateFeature(long featureId, Map<String, Object> attributes)

并且文件(.geodatabase-shm、.geodatabase-wal)已更新,但未更新原始文件(.geodatabase)。

我需要将文件 .geodatabase 发送到服务器以供其他用户下载,那么如何将更改应用到该文件?我应该做一些地理数据库事务吗?

文件 .geodatabase-shm 和 .geodatabase-wal 是临时文件,更改将在原始 .geodatabase 关闭时应用。

因此,解决方案包括在不再使用地理数据库时调用方法 Geodatabase.close(),例如在 onDestroy 方法中。以下是方法概述:Geodatabase close method

在我的例子中,我必须使用不同的方法,因为我可能使用的是旧版本的 ArcGIS SDK。方法是Geodatabase.dispose(),你可以在这里看到描述:Geodatabase dispose method