我已经实现了一个支持Azure移动服务和离线同步的Android应用程序。我一直在用两种不同的设备进行测试。我在第一台设备上执行删除操作(软删除),并且工作正常。然后让它同步,检查服务器端记录,确认删除列有'true'标记。但我似乎无法让第二个平板电脑同步以反映新的更改,即不显示已删除的记录。Android Azure移动服务离线同步软删除
要启用软删除,我已将enableSoftDelete:true添加到Azure上应用程序服务上的表控制器中。我没有感动我的应用程序中删除过程的条件,但下面是一个典型的删除:
Save save = getSave(SaveID);
try {
mtblSave.delete(save);
return true;
} catch (Exception exception) {
exception.printStackTrace();
return false;
}
我使用.NET后端与Azure中的SQL Server。
任何想法?
在此先感谢
我真的以为我发现了这个问题。我将同步方法从'mtblSave.pull(null,“tblsave”)。get();'改为'mtblSave.pull(null).get();'并且它将所有更改的记录拖下来。该代码不工作是我认为会工作的增量同步。我的增量同步代码有问题吗?我是否需要实际提出查询? – SliderUK
我更新了我的答案,你可以参考解释。 –
嗨,谢谢你,但我不完全理解你以粗体显示的部分。使用'mtblSave.pull(null,“tblsave”)。get();'是不是一个唯一的'tblSave'的queryid,所以当它再次被调用时它会检查updatedAt?我使用的方法与其他答案中提到的方法有什么不同?await coffeeTable.PullAsync(“allCoffees”,coffeeTable.CreateQuery());'? – SliderUK